批量循环命令结果(不同文件夹中的命令)
Batch Loop through command result (command in a different folder)
我正在尝试使用 FOR /F 循环查看命令的结果。
命令实际上运行 - C:\Program Files\my folder\command.exe
%installdir% 是 C:\Program Files\my 文件夹\
我 运行 的代码是 -
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
)
)
)
我猜这 运行ning 不正确,因为我需要以某种方式使用 usebackq,但我还没有成功。
感谢对此的任何帮助!
FOR /F "delims=: skip=2" %%e in ('"%installdir%command.exe" /checkstatus ....
^ quotes ^
如果您的命令包含空格,您需要将其加引号。
这个问题是同时开始处理要执行的命令的 cmd
实例删除了一些双引号(我们添加的引号),最后我们得到一个新的错误(见 cmd /?
了解更多信息)
要解决它,您需要添加...更多引号。
FOR /F "delims=: skip=2" %%e in ('""%installdir%command.exe" /checkstatus ... "') do ....
quoted executable ^.......................^
quoted full command ^...........................................^
当
时您将需要usebackq
- 你运行一个命令里面需要单引号,所以你用反引号把命令括起来
- 您正在读取一个文件,需要使用双引号,因为它包含 spaces/special 个字符。双引号字符串作为直接字符串处理,需要
usebackq
表示是文件名
如果你执行 for /?
你可以看到这两种情况
我正在尝试使用 FOR /F 循环查看命令的结果。
命令实际上运行 - C:\Program Files\my folder\command.exe
%installdir% 是 C:\Program Files\my 文件夹\
我 运行 的代码是 -
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
)
)
)
我猜这 运行ning 不正确,因为我需要以某种方式使用 usebackq,但我还没有成功。 感谢对此的任何帮助!
FOR /F "delims=: skip=2" %%e in ('"%installdir%command.exe" /checkstatus ....
^ quotes ^
如果您的命令包含空格,您需要将其加引号。
这个问题是同时开始处理要执行的命令的 cmd
实例删除了一些双引号(我们添加的引号),最后我们得到一个新的错误(见 cmd /?
了解更多信息)
要解决它,您需要添加...更多引号。
FOR /F "delims=: skip=2" %%e in ('""%installdir%command.exe" /checkstatus ... "') do ....
quoted executable ^.......................^
quoted full command ^...........................................^
当
时您将需要usebackq
- 你运行一个命令里面需要单引号,所以你用反引号把命令括起来
- 您正在读取一个文件,需要使用双引号,因为它包含 spaces/special 个字符。双引号字符串作为直接字符串处理,需要
usebackq
表示是文件名
如果你执行 for /?