我正在编写一个批处理文件,以确定某些程序当前是否正在运行。到目前为止,这是我的代码:
for %%x in ("notepad++.exe" "eclipse.exe") do (
tasklist /FI "IMAGENAME eq %%x" | find /I /C %%x
)
我希望能够在变量中存储“tasklist”行(应该是一个大于或等于0的数字)的结果。
我想我真的在问:是否可以捕获此输出;如果是的话,怎么样?
答案 0 :(得分:1)
使用FOR /F
:
for %%x in ("notepad++.exe" "eclipse.exe") do (
for /f %%c in ('tasklist /FI "IMAGENAME eq %%x" ^| find /I /C %%x') do echo %%c
)
将要捕获其输出的命令放在单引号内,并使用shell转义字符^
转义shell中具有特殊含义的任何字符,例如管道。
使用FOR /?
时,不要忘记查看FOR /F
其他选项。