TsRenameでのリネーム後のファイル名でバッチ処理をしてみる

TsRenameというTSファイルのEPGを読み取ってファイル名を変更してくれる便利なツールがありますが、
バッチ処理をするときはリネーム後のファイル名がわからないということがあったりします。

リネームした後のファイルをバッチ処理する方法をなんとなく考えてみました。
あまり意味ないけどw

[ダウンロード]

#ref(): File not found: "TsRename2.lzh" at page "TsRenameのリネーム後のファイルでバッチ処理"

GetFile_ID.exe

ファイルの一意のID(数値)を表示するツールです。
このツールでIDを表示するとリネームしても同じIDが表示されます。
同じディスク内でmoveしたときはNTFSだと同じIDを維持しますがFATだと変化します。

TsRename2.bat

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%


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS