以下の内容はhttps://shikaku-sh.hatenablog.com/entry/bat-replace-filenameより取得しました。


ファイル名を datetime に変更するバッチファイル

とりあえず、ファイル名を置き換えたいときに利用する。 バッチファイルが一瞬走るんでちょっとうざいけど、問題なく動作した。

@echo off
setlocal enabledelayedexpansion

:: 現在の日付と時間を取得(yyMMdd HH.mm.ss.ff)
for /f "tokens=2 delims==" %%I in ('wmic os get localdatetime /value') do set datetime=%%I
set YY=%datetime:~2,2%
set MM=%datetime:~4,2%
set DD=%datetime:~6,2%
set HH=%datetime:~8,2%
set MIN=%datetime:~10,2%
set SS=%datetime:~12,2%
set FF=%datetime:~15,2%

:: カウンター(ファイルごとに連番を振る)
set COUNT=0

:: 各ファイルの処理
for %%F in (%*) do (
    set /a COUNT+=1
    set "filename=%%~nxF"
    set "filepath=%%~dpF"
    set "outputs_folder=%%~dpFoutputs"

    :: outputs フォルダを作成
    if not exist "!outputs_folder!" mkdir "!outputs_folder!"

    :: 連番を3桁で設定
    set "num=00!COUNT!"
    set "num=!num:~-3!"

    :: 新しいファイル名を作成(拡張子を維持)
    set "newname=data_!YY!!MM!!DD! !HH!.!MIN!.!SS!.!FF!_!num!%%~xF"

    :: copy コマンドでリネーム&コピー(元ファイルは残す)
    copy /Y "%%~F" "!outputs_folder!\!newname!"

    echo Copied and renamed: %%~F → "!outputs_folder!\!newname!"
)

pause

出力は、ドラッグアンドドロップしたファイルのあるフォルダーに output フォルダーを作成して、その中に移動する。 複数ファイルをドラッグアンドドロップされたときのために、末尾に連番 "_00x" を付与している。

data_250310 18.06.53.73_001.ext

ファイルを残さず移動させたいときは move がいいと思う。

move "%%~F" "!outputs_folder!\!newname!" 

参考

  • LAMY




以上の内容はhttps://shikaku-sh.hatenablog.com/entry/bat-replace-filenameより取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14