我觉得他的脚本逻辑有点问题,我重新修改了,加了个命令行参数处理!你自己看吧!
还有,这个脚本的 checkAdmin(检查管理员身份) 功能;运行一次后,标志文件就不存在了,没什么意义,我删掉了!
cls
@echo off
color 79
title MySQL管理程序
if "%1" equ "" goto menu
if "%1"=="1" goto startup
if "%1"=="2" goto shutdown
if "%1"=="3" goto reboot
exit
:menu
cls
echo.注意:本脚本需要管理员身份才能运行成功!
echo.
echo.=-=-=-=-请选择您要对MySQL的操作-=-=-=-=-
echo.1: 启动MySQL
echo.2: 关闭MySQL
echo.3: 重启MySQL
echo.4: 退出操作
echo.=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
echo.
set /p id="请输入您要选择的项目序号"
if "%id%"=="1" goto startup
if "%id%"=="2" goto shutdown
if "%id%"=="3" goto reboot
if "%id%"=="4" exit
goto menu
:startup
echo.
call :checkMySQL
if %count% equ 0 (
echo.启动MySQL......
net start mysql56
)
echo.MySQL已启动!
if "%1" neq "" exit
pause
goto menu
:shutdown
echo.
call :checkMySQL
if %count% neq 0 (
echo.关闭MySQL......
net stop mysql56
)
echo.关闭MySQL成功!
if "%1" neq "" exit
pause
goto menu
:reboot
echo.
call :checkMySQL
if %count% neq 0 (
echo.关闭MySQL......
net stop mysql56
)
echo.关闭MySQL成功!
echo.启动MySQL......
net start mysql56
echo MySQL已启动!
if "%1" neq "" exit
pause
goto menu
:checkMySQL
set /a count=0
set MyString1="cmd1"
for /F "tokens=1,2* delims=." %%i in ('tasklist /NH') do (
if "%%i" equ %MyString1% set /a count=1
)