ファイルのタイムスタンプ(更新日時)をバッチで一括変更する ~Windows10~
これはなに?
ファイルのタイムスタンプを変更するコマンドを調べたので、忘れないうちにバッチにしたん。
作成日時・更新日時・アクセス日時、のどれでも全部でも好きな日時・時刻に変更できます。
使い方
- Codeを全部テキストファイルにコピペ保存し、"タイムスタンプ変更.bat" とか適当な名前に変更してバッチファイルを作成
- タイムスタンプを変更したいファイルを(まとめてでもOK)バッチにドロップ
- 変更したい項目を選び、変更後の日時・時刻を入力
- SendTo: に入れておけば、[右クリック→送る] からでもタイムスタンプ変更できて幸せ
Windows10で動作確認。その他のWindowsでもPowerShellが動けば動きます。たぶん・・
実行イメージ
Code
@echo off echo; echo 作成日時,更新日時,アクセス日時のうち、変更するものを選んでください。 echo (eg. 100=作成日時、001=アクセス日時、未入力=111=すべて) set /p ITM=変更対象入力 : echo; echo フォーマットに従い日時を入力してください。 echo (eg. 2001/05/03 19:27:56 (←未入力はこの日時に設定)) : set /p DT=日時入力 : if "%ITM%1"=="1" set ITM=111 if "%DT%1"=="1" set DT=2001/05/03 19:27:56 echo; echo %DT% echo; :SYORI if "%ITM:~0,1%"=="1" powershell -ExecutionPolicy RemoteSigned Set-ItemProperty '%1' -name CreationTime -value '%DT%' if "%ITM:~1,1%"=="1" powershell -ExecutionPolicy RemoteSigned Set-ItemProperty '%1' -name LastWriteTime -value '%DT%' if "%ITM:~2,1%"=="1" powershell -ExecutionPolicy RemoteSigned Set-ItemProperty '%1' -name LastAccessTime -value '%DT%' :GONEXT shift if /i "1%~1" NEQ "1" goto SYORI :TERMINATION echo 処理を終了しました。 ping localhost -n 4 >nul: endlocal