1
1

More than 3 years have passed since last update.

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

Last updated at Posted at 2021-04-04

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 だったところにチルダを入れました。そうしないと、ファイル名にスペースがある場合にエラーになってました。

1
1
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
1
1