LoginSignup
3
1

More than 3 years have passed since last update.

[写真整理][bat][windows]写真の整理 日付順にフォルダを切って、拡張子毎に振り分ける。※容量制限なし

Last updated at Posted at 2019-10-09

注意 イメージしている作業フローに合わないと、あなたの整理手順とは全く合わない可能性があります。
私はポートレート撮影をよく行い、プロの写真家ではなく、趣味で行っています。

対応はWindowsのpowerShell、mac は別途…

作業フローについて整理

※私の作業フロー

1 写真をJPG、RAWにて撮ります。一日、200枚から1000枚程度撮りますので、結構な数ですね。

2 SDカード上にて写真をこの振り分けツールでいったん日付毎、拡張子毎にて振り分けます。

3 SDカード上にて、jpg の写真を参照し、ほどほどのものを一旦選択します。※こちらは別ツール

4 SDカード上にて、jpg の写真を参照し、ほどほどのものから厳選を選択します。

5 SDカード上にて、厳選を選択したものからRAWデータを集めます。

6 厳選したデータをある程度加工します ※ちょっとさぼり気味

7 モデルさんなどに配布します

8 年末などに一括で出力します(本や写真)

この振り分けツールは何をするのか

ファイルの日付と、拡張子を確認します

拡張子の種類だけ、繰り返します。

拡張子で検索した結果分繰り返します。

ファイルの日付のフォルダを作成します。ファイルの拡張子のフォルダを作成します。

ファイルの日付と拡張子のフォルダ位置にファイルを移動します。

まぁいろいろ解説してもいいですが、

10行目のこの辺りをご自身の環境に合わせて、編集してください。

pict_autoDivision_for_Local_D_.bat
d:
cd d:\
cd DCIM/

実行用のソース

※2019年10月19日 対応拡張子更新

pict_autoDivision_for_Local_D_.bat
REM 画像振り分け SDカード版
REM 
REM 更新日/拡張子/にて振り分けます。
REM 固定のフォルダに置いてください。

d:
cd d:\
cd DCIM/

echo off
for /d %%i in (*) do (
cd %%i

echo %%i フォルダ内のファイルの移動を開始します。

echo ファイル移動対象検索中
for %%A in (*.jpg) do call :sub_ext "%%A" %%~tA

REM Canon
for %%A in (*.crw) do call :sub_ext "%%A" %%~tA
for %%A in (*.cr2) do call :sub_ext "%%A" %%~tA
for %%A in (*.cr3) do call :sub_ext "%%A" %%~tA

REM Nikon
for %%A in (*.NEF) do call :sub_ext "%%A" %%~tA
for %%A in (*.NRW) do call :sub_ext "%%A" %%~tA

REM sony
for %%A in (*.ARW) do call :sub_ext "%%A" %%~tA
for %%A in (*.SRW) do call :sub_ext "%%A" %%~tA

REM Pentax
for %%A in (*.PEF) do call :sub_ext "%%A" %%~tA

REM Fujifilm
for %%A in (*.RAF) do call :sub_ext "%%A" %%~tA

REM Olympus
for %%A in (*.ORF) do call :sub_ext "%%A" %%~tA

REM Panasonic
for %%A in (*.RW2) do call :sub_ext "%%A" %%~tA

REM sigma
for %%A in (*.X3F) do call :sub_ext "%%A" %%~tA

REM 他
for %%A in (*.jpeg) do call :sub_ext "%%A" %%~tA
for %%A in (*.tiff) do call :sub_ext "%%A" %%~tA
for %%A in (*.GPR) do call :sub_ext "%%A" %%~tA
for %%A in (*.DNG) do call :sub_ext "%%A" %%~tA
for %%A in (*.RAW) do call :sub_ext "%%A" %%~tA
for %%A in (*.ERF) do call :sub_ext "%%A" %%~tA
for %%A in (*.3FR) do call :sub_ext "%%A" %%~tA
for %%A in (*.ARW) do call :sub_ext "%%A" %%~tA
for %%A in (*.DCR) do call :sub_ext "%%A" %%~tA
for %%A in (*.MRW) do call :sub_ext "%%A" %%~tA
for %%A in (*.MOS) do call :sub_ext "%%A" %%~tA
for %%A in (*.TIF) do call :sub_ext "%%A" %%~tA
for %%A in (*.SRW) do call :sub_ext "%%A" %%~tA

cd ..\
)
echo ファイルの移動が完了しました。
c:

goto :eof

:sub_ext
set UPD_DATE=%2
set FILENAME=%1
set EXT_NAME=%~x1
set EXT_NAME2=%EXT_NAME:~1%
set YYYYMMDD=%UPD_DATE:/=%"\%EXT_NAME2%"
md %YYYYMMDD% 2>NUL
move %1 %YYYYMMDD%
echo %1
goto :eof

実施概要

DドライブにSDカードを差し込み。
状態を確認します。

画像整理_001.png

こんな感じ。ちなみに822個ほどファイルがあります。

実行中はそこそこのログを吐きながら…実行していきます。

画像整理_002_十こうちゅう.png

実施結果です。

撮影日(作成日)毎に振り分けられています
画像整理_003.png

拡張子毎に振り分けられています。
画像整理_004.png

これで、2つ見なくて済む

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1