ファイルやフォルダの先頭や最後に、「20191117」のような日付を付けたい場合があるかと思います。
ふと。「なんでわざわざ、手入力で日付を入れてるのだろう?」と思い。
ファイルやフォルダをドラッグすると、勝手に日時を付けてくれるバッチファイルを作ってみました。
ファイルやフォルダに日時を付加するバッチファイル
このような内容です。後ろに付ける版と。
if %1 == '' goto :eof
:start
set dt=%date:~0,4%%date:~5,2%%date:~8,2%
set dts=%date:~2,2%%date:~5,2%%date:~8,2%
set tm2=%time: =0%
set tm=%tm2:~0,2%%tm2:~3,2%%tm2:~6,2%
:main
ren %1 "%~n1%dts%%~x1"
前に付ける版です。
if %1 == '' goto :eof
:start
set dt=%date:~0,4%%date:~5,2%%date:~8,2%
set dts=%date:~2,2%%date:~5,2%%date:~8,2%
set tm2=%time: =0%
set tm=%tm2:~0,2%%tm2:~3,2%%tm2:~6,2%
:main
ren %1 "%dts%%~n1%~x1"
ファイル名はそれぞれ「ファイル名の後ろに日付.bat」「ファイル名の前に日付.bat」で問題無いと思います。
ファイルの種類は「すべてのファイル(*.*)」、文字コードは「ANSI」を選択してから保存して下さい。
バッチファイルをちゃちゃっと改造すれば、「2019年11月17日」のようなフォーマットにしたり、日付と合わせて時刻を一緒に入れたりできるかと思います。
デスクトップの片隅に置いておけば、少し便利かもしれません。
コメント
:loop
if “%~1″==”” exit
ren %1 “%~n1 %DATE:/=%%~x1”
shift
goto :loop
記事内の結果なら、上記でも出来ますよ!(大きなお世話だとは思いますが・・・)
しかし、フォルダ名の中に.が入っていると拡張子として認識されてしまいます。
さらにすでにリネームされているファイルやフォルダにも再度適応してしまうのがぱっと思いついた問題点です。
そこで、以下のようなBATを考えてみましたので、よろしければ試してみてください。
カスタムしやすいように書いたつもりです。
私は Shell:Sendto 内にいくつもBATを置いて、処理に合わせてファイルやフォルダに適応させています。お勧めの使い方です。
ちなみに自動起動も組み合わせれば曜日も入力出来るようになりますよ。
BATは楽しいですね☆
:set
set DATE=%DATE:/=%
set YEAR=%DATE:~0,4%
set MONTH=%DATE:~4,2%
set DAY=%DATE:~6,2%
set HOUR=%TIME:~0,2%
set MINUTE=%TIME:~3,2%
set SECOND=%TIME:~6,2%
rem 上記を組み合わせたりしてリネーム用の単語を指定
set STR=%DATE%
:loop
if “%~1″==”” exit
rem リネーム用の単語がファイル名に含まれる場合処理をスキップ
echo %1 | find “%STR%”>NUL && goto :skip
rem ファイルのリネーム
if not exist “%~1\” ren %1 “%~n1 %STR%%~x1%
rem フォルダのリネーム
if exist “%~1\” ren %1 “%~nx1 %STR%”
:skip
shift
goto :loop