Y子です。
朝活?してみます。
昨日(「バッチファイルにドロップして、ファイル名に現在日時を付加する」)の応用で、「現在日時」ではなく「ファイルの更新日時」を付加してみます。
filedrop_ren_upddate.bat
@echo off
rem 引数がない場合は終了する
if "%~1"=="" (
echo 引数がありません
pause
exit /b
)
rem ファイルの更新日時「2021/04/02 09:46」形式
set str_datetime=%~t1
set str_datetime=%str_datetime:/=%
set str_datetime=%str_datetime::=%
set str_datetime=%str_datetime: =_%
rem 変更前のファイル名(フルパス)「C:\work dir\test.txt」
set str_oldfile=%~1
rem ファイル名分割…拡張子なし「test」と拡張子のみ「.txt」
set str_new_fn=%~n1
set str_new_ex=%~x1
rem 変更後のファイル名(ファイル名のみ)「test_20210402_0946.txt」
set str_newfile=%str_new_fn%_%str_datetime%%str_new_ex%
ren "%str_oldfile%" "%str_newfile%"
echo ファイル名を「%str_newfile%」に変更しました。
pause
「更新日時」と違って、「秒」まで取得できないようです。
でも、リネームの需要があるのは、「現在日時」より「更新日時」な気がします。(わたし個人の感想ですけど!)
ではまた!
【2021/04/05 09:00 追記】
set str_oldfile=%1
だったところにチルダを入れました。そうしないと、ファイル名にスペースがある場合にエラーになってました。