【发布时间】:2015-06-11 12:14:04
【问题描述】:
您好,我正在尝试创建 Windows 脚本以从目录中的所有 .mkv 文件中提取字幕,但我遇到了问题。
这是我的脚本:
dir /b | findstr .*".mkv"$ > tmpFile
for /f "tokens=*" %f in (tmpFile) do start mkvextract.exe tracks %f 2:%~nf.ass
del tmpFile
问题是当我在 cmd.exe 中执行它时,一切正常,但是当我将它包装在 .bat 文件中时,只能执行第一行和第三行。
表示此错误的行
C:\test>dir /b | findstr .*".mkv"$ 1>tmpFile
The following usage of the path operator in batch-parameter
substitution is invalid: %~nf.ass
For valid formats type CALL /? or FOR /?
The syntax of the command is incorrect.
C:\test>for /f "tokens=*" f 2:n (tmpFile) do start
mkvextract.exe tracks %f 2:%~nf.ass
我正在尝试更改脚本来修复错误,但我唯一实现的是即使在命令行中也停止工作。请帮忙。 :)
【问题讨论】:
-
findstr .*".mkv"$背后的想法是什么? -
@npocmaka:第一个
.*是“任何字符零次或多次”的正则表达式,".mkv"部分是文字“.mkv”,最后的$是“行尾”的正则表达式!
标签: windows batch-file cmd