ファイルやフォルダに日付を自動で付けるには

ファイルやフォルダの先頭や最後に、「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」で問題無いと思います。

拡張子は「.bat」になります。

ファイルの種類は「すべてのファイル(*.*)」、文字コードは「ANSI」を選択してから保存して下さい。


バッチファイルをちゃちゃっと改造すれば、「2019年11月17日」のようなフォーマットにしたり、日付と合わせて時刻を一緒に入れたりできるかと思います。

デスクトップの片隅に置いておけば、少し便利かもしれません。

スポンサーリンク

フォローする

スポンサーリンク

コメント

  1. 天才猿 より:

    :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