1 :init 2 setlocal DisableDelayedExpansion 3 set "batchPath=%~0" 4 for %%k in (%0) do set batchName=%%~nk 5 set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs" 6 setlocal EnableDelayedExpansion 7 :checkPrivileges 8 NET FILE 1>NUL 2>NUL 9 if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges ) 10 :getPrivileges 11 if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges) 12 rem UCA 13 ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%" 14 ECHO args = "ELEV " >> "%vbsGetPrivileges%" 15 ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%" 16 ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%" 17 ECHO Next >> "%vbsGetPrivileges%" 18 ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%" 19 "%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %* 20 exit /B 21 :gotPrivileges 22 setlocal & pushd . 23 cd /d %~dp0 24 if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1)
将以上代码复制到脚本的功能代码前的位置就会出现提示框,提示用户赋予管理员权限