批次 MKV 元資料刪除 - Batch Scipt

批次 MKV 元資料刪除 - Batch Scipt

我正在嘗試創建一個批次文件,該文件將使用mkvpropedit並刪除目錄中所有 mkv 文件中的所有標籤,到目前為止我已經設法獲得這個:

@ECHO OFF
TITLE MKV Metadata Remover
ECHO.
ECHO This program executes MKVPropedit to remove all metadata from all mkv 
files in the current directory.
ECHO.

:choice
set /P c=Are you sure you want to continue[Y/N]?
if /I "%c%" EQU "Y" goto :somewhere
if /I "%c%" EQU "N" goto :somewhere_else
goto :choice


:somewhere

FOR /F "tokens=*" %G IN ('dir /b *.mkv') DO mkvpropedit "%G" --tags all: -d 
title --delete-attachment "1" 
pause 
exit

:somewhere_else

ECHO Closing program...
pause
exit

但是,當使用該選項時,即使在充滿檔案Y的目錄中,視窗也會關閉。.mkv

任何幫助將不勝感激,感謝您的閱讀。

答案1

試試這樣:

FOR %%G IN (*.mkv) DO mkvpropedit "%%G" --tags all: -d title --delete-attachment 1

注意:批次檔中的變數需要雙%(請參閱:https://stackoverflow.com/questions/14509652/what-is-the-difference- Between-and-in-a-cmd-file

答案2

我在 Windows 命令列中使用了 WSL bash:Windows/WSL/bash/

find . -name "*.mkv" -exec bash -c 'for f; do mkvpropedit --tags all: "${f%.*}.mkv" ; done' -- {} +

第一部分,直到 -exec,讀取並儲存 mp4 檔案清單。 -exec bash -c 將執行 bash 命令列。從「for f」到下一個分號是一個for循環,它呼叫mkvpropedit在循環的當前迭代中刪除mkv檔案中的所有標籤。 「完成」結束循環。 -- 表示選項結束。 「在內部命令中,{}代表參數擴展。用痛苦的英語來說,它的意思是「插入在這裡找到的檔案名稱」。「

注意必須安裝 mkvtoolnix:“apt install mkvtoolnix”。

請注意,這也適用於子目錄。

相關內容