在批处理文件中,我试图检查服务是否已启动,如果没有启动,请等待。
现在要检查服务是否正在运行,我正在这样做:
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/