在批处理文件中使用命令输出“if then else”

时间:2016-02-05 16:26:27

标签: batch-file scripting

我想运行此命令并将结果用作“if then”语句

schtasks /query /s SERVER /fo list /tn "TASK" | find /c "Running"

我在如何管理这个问题上遇到了障碍 该命令的正常输出是03 我需要能够说“如果结果0然后转到”或类似的东西。

有什么建议吗?

1 个答案:

答案 0 :(得分:3)

命令 FOR 是将命令的输出行转换为变量以供进一步处理的首选方法。在命令提示符窗口for /?中运行,以获取有关此命令的详细信息。

for /F %%I in ('%SystemRoot%\System32\schtasks.exe /query /s SERVER /fo list /tn "TASK" ^| %SystemRoot%\System32\find.exe /c "Running"') do if "%%I" == "0" goto :EOF

必须使用|对管道运算符^进行转义才能将其应用于命令 schtasks ,并且由于将其应用于命令而不会导致语法错误FOR