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

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

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

#作業フローについて整理
※私の作業フロー
####１　写真をJPG、RAWにて撮ります。一日、200枚から1000枚程度撮りますので、結構な数ですね。
####２　SDカード上にて写真をこの振り分けツールでいったん日付毎、拡張子毎にて振り分けます。
####３　SDカード上にて、jpg の写真を参照し、ほどほどのものを一旦選択します。※こちらは別ツール
####４　SDカード上にて、jpg の写真を参照し、ほどほどのものから厳選を選択します。
####５　SDカード上にて、厳選を選択したものからRAWデータを集めます。
####６　厳選したデータをある程度加工します　※ちょっとさぼり気味
####７　モデルさんなどに配布します
####８　年末などに一括で出力します（本や写真）

#この振り分けツールは何をするのか
###ファイルの日付と、拡張子を確認します
###拡張子の種類だけ、繰り返します。
###拡張子で検索した結果分繰り返します。
###ファイルの日付のフォルダを作成します。ファイルの拡張子のフォルダを作成します。
###ファイルの日付と拡張子のフォルダ位置にファイルを移動します。

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

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

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

#実行用のソース
※2019年10月19日　対応拡張子更新

```bat: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](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490393/35c83c95-4477-315c-f47d-7d788f92a00f.png)

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

####実行中はそこそこのログを吐きながら…実行していきます。
![画像整理_002_十こうちゅう.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490393/52d76095-7009-ce5e-58cc-45dbb32f75cc.png)

####実施結果です。
撮影日（作成日）毎に振り分けられています
![画像整理_003.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490393/0bbfb86e-65ed-ec4c-6c8a-19be6378448f.png)

拡張子毎に振り分けられています。
![画像整理_004.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/490393/1bf79e48-b32b-9f1a-fe18-9f3759a69e71.png)

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