直接上代码,也是直接Copy过来的,在BAT开头加上这一段
@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" )
pushd "%CD%"
CD /D "%~dp0"
:begin
执行你的语句
实现原理:
- 访问一个需要授权的文件夹(%SYSTEMROOT%\system32\config\system)通过查看错误码,判断是否被拒绝。如果被拒绝了,就要申请权限
- 申请权限方法:创建一个运行器,运行相对目录(相对目录就是运行批处理的目录)里面的程序,以管理员权限。