2016年8月31日水曜日

年月毎にファイルをフォルダに振り分けする方法

写真、ビデオのファイル名を撮影日時にする方法でファイル名を変更した後の処理として、
年月毎にフォルダ振り分けを行うバッチファイルを作成します。

1.バッチファイル作成
以下の内容でバッチファイルを作成します。
ダウンロードはこちら

@echo off
@setlocal enabledelayedexpansion

REM 移動先のルートパス
SET MOVE_ROOT=移動先パス ← 適宜修正。ファイルサーバも指定可能。

REM ファイル移動
for %%F in (%*) do (
 echo 処理開始:%%F
 dir /s /b %%F

 FOR /F "usebackq delims=" %%I IN (`dir /s /b %%F`) DO (
  ECHO ファイル処理開始:%%I
  SET F_NAME=%%~nI
  SET MOVE_DIR_NAME=!F_NAME:~0,6!
  SET /A CONF_F_NAME=!MOVE_DIR_NAME!
  IF "!CONF_F_NAME!" NEQ "!MOVE_DIR_NAME!" (
   ECHO ファイル名がおかしいので処理をスキップします。
  ) ELSE (
   REM ディレクトリ存在確認
   SET MOVE_DIR=!MOVE_ROOT!!MOVE_DIR_NAME!\
   
   REM ディレクトリが存在しない場合作成する
   IF NOT EXIST "!MOVE_DIR!" MKDIR "!MOVE_DIR!"
   
   REM ファイルコピー
   MOVE "%%I" !MOVE_DIR!
  )
 )
)

2.バッチファイル配置
1で作成したバッチファイルを適当な場所に配置します。

これで、バッチファイルにフォルダをドロップすると、フォルダ内の画像、ビデオファイルの
ファイル名が撮影日時に変更されます。
送るメニューにショートカットを登録することで、もっと便利に使うこともできますよ。

■送るメニュー編集手順
https://www.microsoft.com/ja-jp/atlife/tips/archive/windows/tips/305.aspx

写真、ビデオのファイル名を撮影日時にする方法

フォルダをドロップすると、フォルダ内の写真、ビデオのファイル名を
「撮影日_撮影時分秒」に変更するバッチファイルの作り方。

1.exftool用意
撮影日時の取得には、exftoolを使用します。
以下のURLから、Windows版をダウンロードしてください。

2.バッチファイル作成
以下の内容でバッチファイルを作成します。
ダウンロードはこちら
@echo off
@setlocal enabledelayedexpansion

REM ファイルリネーム
for %%F in (%*) do (
 echo 処理開始:%%F
 dir /s /b %%F

  FOR /F "usebackq delims=" %%I IN (`dir /s /b "%%F"`) DO (
  FOR /F "usebackq tokens=4,5 delims=- " %%O IN (`c:\bin\exiftool.exe -datetimeoriginal -createdate "%%I"`) DO (
    set F_DATE=%%O
    set F_TIME=%%P
    
    set NEW_FNAME=%%~dI%%~pI!F_DATE::=!_!F_TIME::=!%%~xI
    
    IF "!F_DATE!" NEQ "" IF "!F_TIME!" NEQ "" (
     IF EXIST %%I (
      call :RENAME_FILE %%I !NEW_FNAME! %%~dI%%~pI!F_DATE::=!_!F_TIME::=! 0 %%~xI
     )
    )
  )
 )
)

pause

@endlocal
@echo on

@goto :EOF


:RENAME_FILE
IF EXIST %2 (
 SET /A NUM=%4+1
 SET NEW_FNAME=%3_!NUM!%5
 call :RENAME_FILE %1 !NEW_FNAME! %3 !NUM! %5
) ELSE (
 echo ファイル名変更:%1 ⇒ %2
 echo move %1 %2
 move %1 %2
 exit /b 0
)

exit /b 0

3.バッチファイル配置
2で作成したバッチファイルを適当な場所に配置します。
また、1でダウンロードしたexftool.を解凍すると「exftool.exe」というファイルができるので、
バッチファイルと同じフォルダに配置するか、パスが通っているフォルダに配置します。


これで、バッチファイルにフォルダをドロップすると、フォルダ内の画像、ビデオファイルの
ファイル名が撮影日時に変更されます。
送るメニューにショートカットを登録することで、もっと便利に使うこともできますよ。

■送るメニュー編集手順
https://www.microsoft.com/ja-jp/atlife/tips/archive/windows/tips/305.aspx