【问题标题】:WMCI - how to get the ERRORLEVELWMCI - 如何获得 ERRORLEVEL
【发布时间】:2010-05-20 14:08:12
【问题描述】:

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

例如> wmic process where "commandLine like '%ACTMonitor%' and executablePath like '%PATH1%' and name like '%java%'"

现在的问题是这个命令的errorlevel总是0,不管有没有列出进程。如果进程不再启动,我如何设法获得错误级别!= 0? 或者你们中的哪一个可以告诉我另一个关于如何能够在 .bat 脚本中继续使用这些信息的建议...

提前致谢!

【问题讨论】:

    标签: batch-file cmd


    【解决方案1】:

    一般来说,在一个批处理文件中,你可以使用FIND命令来检查你是否从一个命令中得到了特定的输出:

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

    这有帮助吗?

    【讨论】:

    • 您好,非常感谢您的快速响应。是的,你是对的,我在我的脚本中做了完全相同的事情 - 但后来我发现可以在 wmic 命令(使用 like...)本身中进行限制 - 这对我来说似乎更清楚。所以没有其他方法可以解决,只能按照建议:wmic process get executablePath,commandLine |查找 /i "java" |查找 /i "%ACTMonitor%" |查找 /i "%PATH1%" >NUL ??
    • 据我所知,似乎没有...我实际上会使用您在问题中建议的wmic 命令,但在结果上使用find那 - 所以不必执行 3 个find 命令,您只需一个wmic 和一个find。这样做的好处是wmic 不会最终传递有关每个进程的信息,以便find 可以将其过滤掉-让wmic 进行过滤,只需使用find 将其转换为yes/最后没有...
    • 好的,我会这样做的。还有一个问题,有没有办法将“和”组合成一个?就像现在我有这三个串联的管道,想要一个说“找到”java和%ACTMonitor%和%PATH%”?
    • 为什么需要?只需将“and”放入“wmic”命令!例如:wmic process where "commandLine like '%ACTMonitor%' and executablePath like '%PATH1%' and name like '%java%'" GET HANDLE /VALUE | FIND Handle=
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多