请考虑以下代码段:
for /f "tokens=1,2 delims==" %%A in ('%~dp0otrtool\otrtool.exe "%~1" 2^>^&1') do echo %%A
如果从没有空格的路径调用脚本,则echo工作正常。为了使其适用于具有空格的路径,我在.exe:
周围添加了引号for /f "tokens=1,2 delims==" %%A in ('"%~dp0otrtool\otrtool.exe" "%~1" 2^>^&1') do echo %%A
现在我的echo输出错误消息Der Befehl "d:\Scripts\OTRTools\otrtool\otrtool.exe" "test" ist entweder falsch geschrieben oder konnte nicht gefunden werden.
,这意味着"错误的命令或文件名"。如果我在没有for
"%~dp0otrtool\otrtool.exe" "%~1" 2^>^&1
它工作正常。知道如何修复for-line吗?
答案 0 :(得分:0)
我尝试通过在d:\ myFolder和另一个ind c:\ Program Files \文件夹中编写一个名为hello.bat的批处理来重现您的问题:
for /f "tokens=1,2 delims==" %%A in ('"%~dp0notepad++.exe.lnk" %~1 2^>^&1') do echo %%A
我在两个目录中都启动了hello.bat,我可以通过让#34;"来重现你的错误。约%~1但是一旦我将它们删除它对我有用。
答案 1 :(得分:0)
for /f "tokens=1,2 delims==" %%A in ('CALL "%~dp0otrtool\otrtool.exe" "%~1" 2^>^&1') do echo %%A
插入call
似乎可以解决问题。