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

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

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

[ダウンロード]

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

GetFile_ID.exe

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

TsRename2.bat

GetFile_ID.exeを使ったバッチファイルです。
複数ファイルをまとめてドラッグすれば順次処理します。
バッチ処理の最後にやりたい処理を追記して使います。

@echo off
rem 複数ファイル対応
:loop
call :func "%~1"
shift
if not "%~1" == "" goto loop
exit /b

rem 元ファイルのIDを取得
:func
set FILE=%~1
set DIR=%~dp1
for /f "usebackq" %%A in (`GetFile_ID.exe "%FILE%"`) do set FILE_ID=%%A

rem TsRenameの実行
TsRename.exe -auto -quit "%FILE%"

rem IDが一致するファイルを検索
for /r "%DIR%" %%B in (*.*) do (
 for /f "usebackq" %%C in (`GetFile_ID.exe "%%~B"`) do (
  if "%FILE_ID%" == "%%C" set RENAME=%%~B
 )
)

rem =========== ここから下を書き換えて使う ===============
echo リネーム前のファイル名:"%FILE%"
echo リネーム後のファイル名:"%RENAME%"


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