質問: ### 前提・実現したいこと ffmpegでエンコードする際に、ファイルの場所とエンコード後につける名前をバッチを使ってffmpegに渡したいです。 ### 発生している問題・エラーメッセージ ffmpegに変数を渡せません ``` エラーメッセージ ``` %i.avi: No such file or directory ### 該当のソースコード バッチ ここにご自身が実行したソースコードを書いてください cd %UserProfile%/enc cls For /F "usebackq tokens=1,2 delims=" %%i In ("enc.txt") do ( CALL :ENC %%i %%j GOTO :EOF ) CALL :END :ENC ffmpeg -i "%%i.avi" -b:v 1000k -pass 2 "%%b.mp4" GOTO :EOF :END ### enc.txt user/enc/hoge1.avi 2020/1/1 動物園 user/enc/hoge2.avi 2025/1/1 水族館【重要】 user/enc/hoge3.avi 2030/1/1 沖縄 ### 試したこと cmdのforについて検索してみました ### 補足情報(言語/FW/ツール等のバージョンなど) より詳細な情報 ### 前提・実現したいこと ここに質問したいことを詳細に書いてください (例)PHP(CakePHP)で●●なシステムを作っています。 ■■な機能を実装中に以下のエラーメッセージが発生しました。 ### 発生している問題・エラーメッセージ ``` エラーメッセージ ``` ### 該当のソースコード ``` ここにご自身が実行したソースコードを書いてください ``` ### 試したこと 課題に対してアプローチしたことを記載してください ### 補足情報(言語/FW/ツール等のバージョンなど) より詳細な情報
回答: > > `ffmpeg -i "%%i.avi" -b:v 1000k -pass 2 "%%b.mp4"` > > > バッチファイル中では、`%%i`のような二重`%`はfor文の中だけで有効です。call時に指定している値は、call先では`%1`, `%2`として受け取れます。 ``` :ENC ffmpeg -i "%1.avi" -b:v 1000k -pass 2 "%2.mp4" ```