如何在变量中存储.bat FIND的输出

时间:2013-07-11 21:12:22

标签: windows batch-file

我正在编写一个批处理文件,以确定某些程序当前是否正在运行。到目前为止,这是我的代码:

for %%x in ("notepad++.exe" "eclipse.exe") do ( 
tasklist /FI "IMAGENAME eq %%x" | find /I /C %%x
)

我希望能够在变量中存储“tasklist”行(应该是一个大于或等于0的数字)的结果。

我想我真的在问:是否可以捕获此输出;如果是的话,怎么样?

1 个答案:

答案 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其他选项。