我在批处理脚本中使用 MediaInfo CLI,但我不知道问题出在哪里,但如果我使用其中包含空格的文件夹路径,我无法让此命令工作。我对批处理脚本并不陌生,多年来已经创建了数百个脚本。通常我会认为使用双引号可以解决问题,但我知道这与使用“for /f”命令和使用双引号传递多个参数有关。我已经尝试了我能想到的一切,但如果我使用带空格的路径,仍然无法让它工作。没有空格它工作得很好,只是没有空格。
请注意,这不是完整的批处理脚本,只是有问题的代码片段。我还将双“%%”变量更改为单“%”,以便在命令行上进行测试。
另外,在我的批处理脚本中,我不是使用“echo”而是输出到一个变量,这就是为什么我必须使用“for”命令。所有这些都与这个特定问题无关。
工作示例
for /f %g in ('C:\MediaInfo.exe "--Inform=General;%MenuCount%" "D:\Some Folder\filename.mkv"') do echo %g
.
for /f "usebackq delims=" %g in (`C:\MediaInfo.exe "--Inform=General;%MenuCount%" "D:\Some Folder\filename.mkv"`) do echo %g
.
不工作的例子
for /f %g in ('"C:\folder with spaces\MediaInfo.exe" "--Inform=General;%MenuCount%" "D:\Some Folder\filename.mkv"') do echo %g
.
for /f "usebackq delims=" %g in (`C:\folder with spaces\MediaInfo.exe "--Inform=General;%MenuCount%" "D:\Some Folder\filename.mkv"`) do echo %g
两个“NOT WORKING”命令都会导致相同的错误......
'C:\folder' 不是内部或外部命令、可运行程序或批处理文件。