- 追加された行はこの色です。
- 削除された行はこの色です。
*TsRenameのリネーム後のファイルでバッチ処理 [#c4a09772]
*TsRenameでのリネーム後のファイル名でバッチ処理をしてみる [#c4a09772]
TsRenameというTSファイルのEPGを読み取ってファイル名を変更してくれる便利なツールがありますが、~
バッチ処理をするときはリネーム後のファイル名がわからないということがあったりします。~
~
リネームした後のファイルをバッチ処理する方法をなんとなく考えてみました。~
あまり意味ないけどw~
~
[ダウンロード]~
#ref("TsRename2.lzh")
**GetFile_ID.exe [#s95a0e0b]
ファイルの一意のID(数値)を表示するツールです。~
このツールでIDを表示するとリネームしても同じIDが表示されます。~
同じディスク内でmoveしたときはNTFSだと同じIDを維持しますがFATだと変化します。
**TsRename2.bat [#l63d8c9e]
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%