windows mysql 自动启动bat脚本

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

根据上一篇文章进行手动启动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"

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

 

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

csdn_aspnet

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值