@echo off
setlocal enabledelayedexpansion
:LOOP
rem ファイル名がない場合、処理終了
if "%~nx1" == "" goto EOF
rem /を削除し、日付を設定
set "Today=%DATE:/=%"
rem ファイル名を取得
set "FileName=%~n1"
rem ファイル名先頭の6桁が日付かチェック(290000未満、200000より大きい)
if "!FileName:~0,6!" lss "290000" (
if "!FileName:~0,6!" gtr "200000" (
rem 日付を削除
set "FileName=!FileName:~6!"
)
)
rem ファイル名先頭がアンダーバーの場合は削除
if "!FileName:~0,1!"=="_" set "FileName=!FileName:~1!"
rem ファイル名先頭に日付を追加
set "NewFileName=!Today:~2,8!_!FileName!%~x1"
rem ファイル名を変更
ren "%~1" "!NewFileName!"
rem 次のファイルに移動
shift
goto LOOP
:EOF
endlocal
3. 名前を付けて保存を開く
※ショートカット Ctrl + Shift + S
4. ファイル名を変更し保存
①「.」の後ろを「bat」に変更します 「日付追加」の名前はなんでも大丈夫です
②文字コードを「ANSI」に変更します
5. 完成
あとは先ほど紹介したように
ファイル(フォルダ)をバッチファイルにドラッグ&ドロップすると 先頭に日付が追加・更新されます
後ろに日付をつけたい場合
先ほどは先頭に日付をつけるバッチを作成しました。
後ろに日付をつける場合は、こちらのコードを試してみてください!
@echo off
setlocal enabledelayedexpansion
:LOOP
rem ファイル名がない場合、処理終了
if "%~nx1" == "" goto EOF
rem /を削除し、日付を設定
set "Today=%DATE:/=%"
rem ファイル名を取得
set "FileName=%~n1"
rem 6桁の日付が後ろにあるかチェックして削除
if "!FileName:~-6!" lss "290000" (
if "!FileName:~-6!" gtr "200000" (
set "FileName=!FileName:~0,-6!"
)
)
rem ファイル名末尾がアンダーバーの場合は削除
if "!FileName:~-1!"=="_" set "FileName=!FileName:~0,-1!"
rem ファイル名末尾に日付を追加
set "NewFileName=!FileName!_!Today:~2,8!%~x1"
rem ファイル名を変更
ren "%~1" "!NewFileName!"
rem 次のファイルに移動
shift
goto LOOP
:EOF
endlocal