LoginSignup
2
2

More than 3 years have passed since last update.

バッチファイルにドロップして、ファイル名に現在日時を付加する

Last updated at Posted at 2021-04-04

Y子です。
土日ってすぐに終わっちゃいますね。

今日は、過去2回の合わせ技で、ファイル名を簡単に変更するバッチファイルを作ってみました。

つまり、なにかファイルをドロップすると、ファイル名に現在日時を付加するようリネームしてくれるバッチファイルです。

たとえば、「test.txt」が「test_20210402_094617.txt」になります。

filedrop_ren_curdate.bat
@echo off

rem 引数がない場合は終了する
if "%~1"=="" (
  echo 引数がありません
  pause
  exit /b
)

rem 日付「20210402」形式
set str_date=%date:~0,4%%date:~5,2%%date:~8%

rem 時刻「094617」形式
set str_time=%time: =0%
set str_time=%str_time:~0,2%%str_time:~3,2%%str_time:~6,2%

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_094617.txt」
set str_newfile=%str_new_fn%_%str_date%_%str_time%%str_new_ex%

ren "%str_oldfile%" "%str_newfile%"
echo ファイル名を「%str_newfile%」に変更しました。

pause

リネームコマンドのrenrenameは、第2引数にフォルダ名を含んではだめなんですね。
なので、str_new_fnには「%~dpn1」ではなく「%~n1」を代入しています。

リネームの成否の判定をしていないので、「変更しました」と出力しているのはちょっとウソですね(^-^;
まあいっか!

明日は月曜だー。わー。

【2021/04/05 09:00 追記】
set str_oldfile=%1 だったところにチルダを入れました。そうしないと、ファイル名にスペースがある場合にエラーになってました。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2