Batch file WMCI-如何获取错误级别

Batch file WMCI-如何获取错误级别,batch-file,cmd,Batch File,Cmd,我想使用“wmic”命令来确定特定的java进程是否仍在运行 例如>wmic进程,其中“命令行类似于“%ACTMonitor%”,可执行路径类似于“%PATH1%”,名称类似于“%java%”” 现在的问题是,无论是否列出了进程,该命令的errorlevel始终为0。我如何才能获得errorlevel!=如果进程不再启动,是否为0? 或者你们中的一位可以告诉我关于如何在.bat脚本中继续使用此信息的另一个建议 提前谢谢 通常,在批处理文件中,可以使用FIND命令检查是否从命令中获得特定输出: &

我想使用“wmic”命令来确定特定的java进程是否仍在运行

例如>wmic进程,其中“命令行类似于“%ACTMonitor%”,可执行路径类似于“%PATH1%”,名称类似于“%java%””

现在的问题是,无论是否列出了进程,该命令的errorlevel始终为0。我如何才能获得errorlevel!=如果进程不再启动,是否为0? 或者你们中的一位可以告诉我关于如何在.bat脚本中继续使用此信息的另一个建议


提前谢谢

通常,在批处理文件中,可以使用
FIND
命令检查是否从命令中获得特定输出:

>ECHO This is correct | FIND "correct" > NUL
>ECHO %ERRORLEVEL%
0
>ECHO This is bad | FIND "correct" > NUL
1

这有帮助吗?

嗨,非常感谢您的快速回复。是的,你是对的,我在我的脚本中做了完全相同的事情-但后来我发现可以在wmic命令(使用like…)本身中进行限制-这对我来说似乎更清楚。因此,没有其他解决方案可以这样做,只是按照建议:wmic进程get executablePath,命令行| find/i“java”| find/i“%ACTMonitor%”| find/i“%PATH1%”NUL??据我所知,似乎没有。。。实际上,我会使用你在问题中建议的
wmic
命令,但在结果上使用
find
——因此,不必执行3个
find
命令,只需要一个
wmic
和一个
find
。这样做的好处是,
wmic
不会最终将每个进程的信息管道化,以便
find
可以过滤掉它-让
wmic
进行过滤,只需使用
find
在最后将其转换为yes/no…好的,我会这样做。还有一个问题,有没有办法把“和”组合成一个?就像现在我把这三个管道串联起来,希望其中一个管道说“find”java和%ACTMonitor%和%PATH%”?为什么需要?只需将“and”放在“wmic”命令中!例如:
wmic process where“commandLine类似于“%ACTMonitor%”,executablePath类似于“%PATH1%”,名称类似于“%java%”“获取句柄/值|查找句柄=