@echo off @rem お題:プログラム予約でREcName_Macro.dllで[$Title$-$SDYYYY28$$SDMM28$$SDDD28$-$STHH28$$STMM$$STSS$.ts]を指定した時のようにファイル名を変えたい @rem むずいですよね( ^ω^)・・・まぁバッチファイルの勉強ということで @rem プログラム予約(時間指定)時の後処理でファイル名にタイトルを入れるバッチです @rem 基本的な使い方: @rem EpgDataCapBon フォルダに RecAfterTSRename.bat(このファイル)とRecAfterTSRename.ps1(powershell script)の2つを置いてください @rem プログラム予約時の後処理バッチにこのファイルを選択してください。 @rem ●録画設定で「番組情報を出力する」にチェックを入れてください。: タイトル名.ts.program.txt が作成されるようになります @rem ※注意:このサンプルではプログラム予約のタイトル名に、「全角/半角空白」や記号などを使わないでください。 @rem 「全角/半角空白」などバッチファイルでは区切り文字になるので特別な処理をしないと動かないため。 @rem デバッグなどは構築上引っかかったものだけやっています。 @rem すべての環境で動くことを保証するものではございません。 @rem 動くようにカスタマイズしてね!てへぺろ(゚u゚)>ベー @rem 動作確認: @rem EpgDataCapBon xtne6f氏版-181110 @rem Windows10 64bit 1809 October2018 setlocal enabledelayedexpansion @rem デバッグ用に直接変数は使ってない状態です @rem 変数名すべてを直接指定することで動作確認できます set TSNAME=$FilePath$ set RECPATH=$FolderPath$ set RECNAME=$FileName$ set RECTXT="$FolderPath$\$FileName$.ts.program.txt" set RECTIME=$SDYYYY28$$SDDD28$-$STHH28$$STMM$$STSS$ @rem 豆:日付は時間まで入れてファイル名にすることで重複を防ぎましょう @rem debug----setting @rem set TSNAME=filename.ts @rem set RECPATH=d: @rem set RECNAME=filename @rem set RECTXT=filename.ts.program.txt @rem set RECTIME=20181111-123456 @echo test >filename.ts timeout /t 5 > nul @rem debug----end @rem バッチファイルと同じところにログファイルを作り書き出します set LOGNAME=RecAfterTSRename_Log.txt set LOGFULLPATH=%~dp0%LOGNAME% @rem ログファイルは追記する人はコメントアウト del %LOGFULLPATH% rem パワーシェルを呼び出すバッチファイルです。 rem RecAfterTSRename.bat(このファイル) rem RecAfterTSRename.ps1(powershellコマンド) rem 上記2つをEpgDataCapBon置いて、同じフォルダにある場合のサンプルソースです rem 変数を明示的に直接渡しています。長いです(^◇^; @rem powershell -NoProfile -ExecutionPolicy Unrestricted .\RecAfterTSRename.ps1 $FilePath$ %RECPATH% $FolderPath$ "$FolderPath$\$FileName$.ts.program.txt" $FileName$ %LOGFULLPATH% powershell -NoProfile -ExecutionPolicy Unrestricted .\RecAfterTSRename.ps1 %TSNAME% %RECPATH% %RECTIME% %RECTXT% %RECNAME% %LOGFULLPATH% @rem ログファイルを作成しない場合 @rem powershell -NoProfile -ExecutionPolicy Unrestricted .\RecAfterTSRename.ps1 %TSNAME% %RECPATH% %RECTIME% %RECTXT% %RECNAME% goto end @rem -------------------------------------------------------------------------- @rem デバッグ用(使える変数名) @rem -------------------------------------------------------------------------- :debug echo ---- >>%LOGFULLPATH% echo $FilePath$ ファイルのフルパス(バッチのみ) >>%LOGFULLPATH% echo $FolderPath$ ファイルのフォルダパス(最後に\はなし)(バッチのみ) >>%LOGFULLPATH% echo $FileName$ ファイル名(拡張子なし)(バッチのみ) >>%LOGFULLPATH% echo $Title$ 番組名(予約一覧の番組名に表示されているもの) >>%LOGFULLPATH% echo $Title2$ 番組名([]の括弧でくくられている部分を削除したもの) >>%LOGFULLPATH% echo ---- >>%LOGFULLPATH% echo $ServiceName$ サービス名(予約一覧の放送局に表示されているもの) >>%LOGFULLPATH% echo $SDYYYY28$ 28時間表記開始日の年4桁固定 >>%LOGFULLPATH% echo $SDDD28$ 28時間表記開始日の日2桁固定 >>%LOGFULLPATH% echo $STHH28$ 28時間表記開始時間の時2桁固定 >>%LOGFULLPATH% echo $STMM$ 開始時間の分2桁固定 >>%LOGFULLPATH% echo $STSS$ 開始時間の秒2桁固定 >>%LOGFULLPATH% echo ---- >>%LOGFULLPATH% echo $Drops$ 録画結果のドロップ数(バッチのみ) >>%LOGFULLPATH% echo $Scrambles$ 録画結果のスクランブル数(バッチのみ)>>%LOGFULLPATH% echo $Result$ 録画結果のコメント(バッチのみ) >>%LOGFULLPATH% echo $TitleF$ $Title$と同内容でファイル名に使用できない記号が存在した場合全角に変換するもの(バッチのみ) >>%LOGFULLPATH% echo $Title2F$ $Title2$と同内容でファイル名に使用できない記号が存在した場合全角に変換するもの(バッチのみ) >>%LOGFULLPATH% echo $AddKey$ EPG自動予約で登録されたキーワード(バッチのみ) >>%LOGFULLPATH% echo ---- >>%LOGFULLPATH% :end endlocal