我正在尝试这个命令:

for /f "tokens=3 usebackq" %%i in (`"%~dp0imagex.exe" /info "%~dp0DVD\sources\install.wim" ^| findstr /c:"Image Count:"`) do set ImageCount=%%i
echo %ImageCount%

如果路径 %~dp0 包含像“D:\my work”这样的空格,我会收到错误消息。虽然我使用了 usebackq 和反引号而不是单引号。

错误信息是:'D:\my' 不是内部或外部命令,也不是可运行的程序或批处理文件。

我的命令有什么问题?

最佳答案

如果这不起作用:

for /f "tokens=3 usebackq" %%i in (`"%~dp0imagex.exe" /info "%~dp0DVD\sources\install.wim" ^| findstr /c:"Image Count:"`) do set ImageCount=%%i
echo %ImageCount%

试试这个:
pushd %~dp0
for /f "tokens=3 usebackq" %%i in (`imagex.exe" /info "DVD\sources\install.wim" ^| findstr /c:"Image Count:"`) do set ImageCount=%%i
echo %ImageCount%
popd

关于batch-file - 批处理文件的for循环中带空格的路径,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12263458/

10-11 20:23