對目錄中的每個檔案執行一系列命令

對目錄中的每個檔案執行一系列命令

要將字幕新增到單一文件,我使用以下命令:

mkvmerge.exe -o g:\movie01.mkv --default-track 0 --language 0:pl movie01.mkv movie01.srt

在哪裡:

movie01.mkv是影片檔的名稱

movie01.srt是字幕檔的名稱(始終與視訊檔案相同)

g:\movie01.mkv是輸出檔案

如何對目錄中的每個檔案運行上述命令?

答案1

該命令將循環遍歷所有 mkv 檔案並為每個檔案執行命令(我建議將其放在一個.bat檔案中)。該命令應在包含 mkv 檔案的目錄中運行。

for %%A in (*.mkv) do if /i "%%~XA"==".mkv" ( 
    c:\<path to mkvmerge>\mkvmerge.exe -o g:\"%%A" --default-track 0 --language 0:pl "%%A" "%%~nA.srt"
)

%%A等於確切的檔案名稱。

%%~nA等於不帶文件類型的文件名。

答案2

假設所有檔案都有 .mkv 副檔名,這樣怎麼樣:

for /r %%video in (*.mkv) do mkvmerge.exe -o %%video --default-track 0 --language 0:pl %%video.srt

%%video是標識目前資料夾中具有指定副檔名的每個檔案的變數。do在每個文件上運行命令後,我使用相同的變數來調用 srt 文件。

相關內容