windows mysql 自动启动bat脚本

上一篇:windows mysql服务自动启动 错误模块名称:ntdll.dll_csdn_aspnet的博客-CSDN博客

根据上一篇文章进行手动启动mysql服务补充,由于演示机器系统安装的为win11家庭版,为了安全起见,在项目演示期间,避免数据库使用过程中或开机启动mysql服务启动失败 ,编写一个bat脚本,bat文件命名按照自己习惯即可:

net start mysql8

将以上命令存储为mysql.bat,其中mysql8为服务名:

  

但是在自己机器上直接以管理员身份运行没有问题,偶尔在win11家庭版演示机器上会出现没有权限,于是再一次编写自动获取管理员权限,可直接双击运行,代码如下:

@echo off

>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

if '%errorlevel%' NEQ '0' (

goto UACPrompt

) else ( goto gotAdmin )

:UACPrompt

echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"

echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"

"%temp%\getadmin.vbs"

exit /B

:gotAdmin

if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )

net start mysql8

pause;

直接执行后,一闪而过,其实是成功了,想给出提示,并允许cmd命令界面停留几秒后关闭:

@echo off

>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

if '%errorlevel%' NEQ '0' (

goto UACPrompt

) else ( goto gotAdmin )

:UACPrompt

echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"

echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"

"%temp%\getadmin.vbs"

exit /B

:gotAdmin

if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )

net start mysql8023

@echo off
echo 本Dos窗体将在5秒后自动关闭
echo if wscript.arguments(0)^>0 then wscript.Sleep(wscript.arguments(0) * 1000):end if>"%Temp%\delay01.vbs"
cscript "%temp%\delay01.vbs" 5
del "%Temp%\delay01.vbs"

测试直接双击执行后发现,此句:echo 本Dos窗体将在5秒后自动关闭 输出的中文乱码:

 

于是添加一行编码转换,最终代码如下:

@echo off

>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"

if '%errorlevel%' NEQ '0' (

goto UACPrompt

) else ( goto gotAdmin )

:UACPrompt

echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"

echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"

"%temp%\getadmin.vbs"

exit /B

:gotAdmin

if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )

net start mysql8023

@echo off
chcp 65001
echo 本Dos窗体将在5秒后自动关闭
echo if wscript.arguments(0)^>0 then wscript.Sleep(wscript.arguments(0) * 1000):end if>"%Temp%\delay01.vbs"
cscript "%temp%\delay01.vbs" 5
del "%Temp%\delay01.vbs"

再次测试直接双击运行后界面如下:

 

 这样,就不需要再右键以管理员身份运行了。

猜你喜欢

转载自blog.csdn.net/hefeng_aspnet/article/details/131779080
今日推荐