自己在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 展开
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 展开
2个回答
展开全部
修改后的代码如下
@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判断都加引号。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询