我正在尝试使用FOR / F循环执行命令的结果。
实际运行的命令 - C:\ Program Files \ my folder \ command.exe
%installdir%是C:\ Program Files \ my folder \
我运行的代码是 -
FOR /F "delims=, tokens=1,2" %%c in (results.txt) DO (
if %%d EQU [something] (
FOR /F "delims=: skip=2" %%e in ('%installdir%command.exe /checkstatus Client %%c') do (
echo %%e %%f
)
)
)
我猜这是运行不正确,因为我需要以某种方式使用usebackq,但我没有设法这样做。 感谢任何帮助!
答案 0 :(得分:2)
FOR /F "delims=: skip=2" %%e in ('"%installdir%command.exe" /checkstatus ....
^ quotes ^
如果您的命令包含空格,则需要引用它。
这个问题是,同时开始处理执行命令的cmd
实例删除了一些双引号(我们添加的引号),最后我们得到一个新错误(参见{{1更多信息)
要解决此问题,您需要添加...更多报价。
cmd /?
时需要
FOR /F "delims=: skip=2" %%e in ('""%installdir%command.exe" /checkstatus ... "') do ....
quoted executable ^.......................^
quoted full command ^...........................................^
usebackq
表示它是文件名。如果您执行usebackq