TsRenameというTSファイルのEPGを読み取ってファイル名を変更してくれる便利なツールがありますが、
バッチ処理をするときはリネーム後のファイル名がわからないということがあったりします。
リネームした後のファイルをバッチ処理する方法をなんとなく考えてみました。
あまり意味ないけどw
[ダウンロード]
#ref(): File not found: "TsRename2.lzh" at page "TsRenameのリネーム後のファイルでバッチ処理"
ファイルの一意のID(数値)を表示するツールです。
このツールでIDを表示するとリネームしても同じIDが表示されます。
同じディスク内でmoveしたときはNTFSだと同じIDを維持しますがFATだと変化します。
GetFile_ID.exeを使ったバッチファイルです。
複数ファイルをまとめてドラッグすれば順次処理します。
バッチ処理の最後にやりたい処理を追記して使います。
@echo off rem TsRename2 rem 複数ファイル対応 :loop call :f0 "%~1" shift if not "%~1" == "" goto loop exit /b rem 元ファイルのIDを取得 :f0 set FILE=%~1 set DIR=%~dp1 for /f "usebackq" %%A in (`GetFile_ID.exe "%FILE%"`) do call :f1 %%A exit /b rem TsRenameの実行 :f1 set FILE_ID=%1 TsRename.exe -auto -quit "%FILE%" rem ファイル一覧を取得 for /r "%DIR%" %%B in (*.*) do call :f2 %%B exit /b rem IDが一致するファイルを検索 :f2 for /f "usebackq" %%C in (`GetFile_ID.exe "%~1"`) do ( if "%FILE_ID%" == "%%C" call :FINE "%~1" ) exit /b rem リネーム後のファイルが見つかったときの動作 :FINE set RENAME=%~1 rem =========== ここから下を書き換えて使う =============== echo リネーム前のファイル名: echo %FILE% echo リネーム後のファイル名: echo %RENAME%