在批处理文件中,我试图检查服务是否已启动,如果没有启动,请等待。

现在要检查服务是否正在运行,我正在这样做:

sc query "serviceName" | find /i "RUNNING"
if "%ERRORLEVEL%"=="0" (
    echo serviceName is running.
) else (
    echo serviceName is not running
)

麻烦的是,错误级别始终设置为0。可能由于这个已知的Find bug
是否有其他方法可以检查服务是否已启动,如果没有启动,请等待?

最佳答案

如果您不使用Windows NT version 3.1 and Windows NT Advanced Server version 3.1并且您的服务名称不包含running,那么您的代码将可以正常工作。

也许是在一个循环中,所以您应该使用此(或延迟扩展):

sc query "serviceName" | find /i "RUNNING"
if not ERRORLEVEL 1 (
    echo serviceName is running.
) else (
    echo serviceName is not running
)

关于windows - 不使用查找命令检查服务是否正在运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19492191/

10-12 20:57