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

ファイルやフォルダの先頭や最後に、「20111117」のような日付を付けたい場合があるかと思います。

ふと。「なんでわざわざ、手入力で日付を入れてるのだろう?」と思い。

ファイルやフォルダをドラッグすると、勝手に日時を付けてくれるバッチファイルを作ってみました。

ファイルやフォルダを、マウスでドラッグすると

日付が付きますよと。


ファイルやフォルダに日時を付加するバッチファイル

このような内容です。後ろに付ける版と。

if %1 == '' goto end

: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"

:end

前に付ける版です。

if %1 == '' goto end

: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"
:end

バッチファイルをちゃちゃっと改造すれば、「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