Windows 如何在变量中存储.bat FIND的输出
我正在编写一个批处理文件,以确定某些程序当前是否正在运行。以下是我目前的代码:Windows 如何在变量中存储.bat FIND的输出,windows,batch-file,Windows,Batch File,我正在编写一个批处理文件,以确定某些程序当前是否正在运行。以下是我目前的代码: for %%x in ("notepad++.exe" "eclipse.exe") do ( tasklist /FI "IMAGENAME eq %%x" | find /I /C %%x ) 我希望能够将“任务列表”行的结果(应该是大于或等于0的数字)存储在变量中 我想我真的在问:是否有可能捕捉到这个输出;如果是这样的话,怎么做?与/F的: for %%x in ("notepad++.exe" "ecli
for %%x in ("notepad++.exe" "eclipse.exe") do (
tasklist /FI "IMAGENAME eq %%x" | find /I /C %%x
)
我希望能够将“任务列表”行的结果(应该是大于或等于0的数字)存储在变量中
我想我真的在问:是否有可能捕捉到这个输出;如果是这样的话,怎么做?与/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/F
@npocmaka时,请不要忘记查看FOR/?
以了解其他选项:问题并不是专门询问存储结果的问题。此外,这个特定的示例预计将产生最多两行输出,并且很难看出一个人究竟希望将这两行存储在一个或多个变量中。因此,我没有根据胡乱猜测提出具体建议,而是演示了如何获得输出,效果非常好。我还有一些其他问题需要解决,但这解决了我遇到的最大问题。谢谢平心而论,标题确实说它应该在一个变量中