自己在windows8写的批处理文件 关闭和启动自己的mysql服务 MySQL56为我的mysql服务名字 不知道错哪了?

@echooffnetstart|findstrMySQL56>test.txtif%errorlevel%equ0(echotheserviceisonechodoyo... @echo off
net start | findstr MySQL56 >test.txt
if %errorlevel% equ 0 (
echo the service is on
echo do you want to close it?
echo 1:close 2:giveup
set /p var=please enter the choice
if %var%==1 ( echo close the service
net stop MySQL56
) else ( goto end )
) else (
echo the service is off
net start MySQL56
goto end
)
:end
del test.txt
pause
展开
 我来答
开心且清馨丶君子兰
推荐于2016-04-16 · TA获得超过791个赞
知道小有建树答主
回答量:569
采纳率:100%
帮助的人:424万
展开全部

修改后的代码如下

@echo off
net start | findstr MySQL56 >test.txt 
    if "%errorlevel%" == "0"  (
              echo the service is on
        echo do you want to close it?
        echo 1:close  2:giveup
        set /p var=please enter the choice 
            if "%var%" == "1"  ( echo close the service 
            net stop MySQL56
            )  else ( goto end )
    ) else (
    echo the service is off
    net start MySQL56
    goto end    )
:end
del test.txt

pause

错误一:

if %errorlevel% equ 0   

此语句帮助中有明确说明,必须是启用命令扩展后才能这么比较

如果命令扩展名被启用,IF 会如下改变:

    IF [/I] string1 compare-op string2 command
    IF CMDEXTVERSION number command
    IF DEFINED variable command

其中,比较运算符可以是:

    EQU - 等于
    NEQ - 不等于
    LSS - 小于
    LEQ - 小于或等于
    GTR - 大于
    GEQ - 大于或等于

未启用命令扩展到的话,只能使用 字符串 == 字符串 的方式进行比较。

追问
批处理中的字符串什么时候需要加双引号,什么时候不需要加双引号?我怎么见有的书中说批处理的字符串不需要加双引号
追答
双引号是指将其中的字符按照字符串处理,主要是set /p 后面的if判断要加引号,否则某些情况下可能导致判断异常出错,所以我一般if判断都加引号。
feiqinying
2014-01-13 · TA获得超过129个赞
知道小有建树答主
回答量:395
采纳率:0%
帮助的人:208万
展开全部
net start mysql(服务名)
net stop mysql(服务名)
服务名可以到系统的服务中找到mysql,看下属性。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式