您的位置:首页 > 其它

bat判断window服务是否存在

2016-05-01 11:29 274 查看
今天再用bat命名判断window服务时,被坑了。我百度查的他们都说是这样检查的:

@echo off
REM 将引号内部分改成你要查找的服务名称
sc query |find /i "MongoDB" >nul 2>nul
REM 如果服务存在,跳转至exist标签
if not errorlevel 1 (goto exist) else goto notexist

:exist
REM 这里写服务存在时用的代码
echo exist MongoDB server
goto :end

:notexist
REM 这里写服务不存在时用的代码
echo not exist MongoDB server

goto :end

:end
pause


但是我写完以后怎么执行都不对,只有当我把服务启动的时候才能检查到存在。也就是说这个判断根本不是检查是否存在服务,而是判断是否启动服务了。坑爹的百度,在百度上查到的关于这个指令的写法都是这样的写法。大家都在相互抄袭,但且不去尝试是否正确也不指正。

其实正真的检查window服务是否存在的写法应该是:

@echo off
SC QUERY mysql56 > NUL
IF ERRORLEVEL 1060 GOTO NOTEXIST
GOTO EXIST

:NOTEXIST
ECHO not exist mysql56 service
GOTO END

:EXIST
ECHO exist mysql56 service
GOTO END

:END
pause


这才是正确的。而且本人亲测了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: