把如下代碼(分割線之間)復(fù)制到記事本中,并保存為 .bat 格式即可(文件名可自擬):
————————— 分割線 —————————
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: 軟媒魔方自動添加批處理文件管理員權(quán)限 ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off
CLS
ECHO.
ECHO ================================
ECHO 軟媒魔方獲取批處理文件管理員權(quán)限
ECHO ================================
:init
setlocal DisableDelayedExpansion
set "batchPath=%~0"
for %%k in (%0) do set batchName=%%~nk
set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"
setlocal EnableDelayedExpansion
:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
:getPrivileges
if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
ECHO.
ECHO ********************************
ECHO 請求 UAC 權(quán)限批準……
ECHO ********************************
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
ECHO args = "ELEV " >> "%vbsGetPrivileges%"
ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%"
ECHO Next >> "%vbsGetPrivileges%"
ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
"%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %*
exit /B
:gotPrivileges
setlocal & pushd .
cd /d %~dp0
if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1)
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: 以下為需要運行的批處理文件代碼 ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
rem 本行以下可修改為你需要的bat命令(從上面三行冒號開始到下面都可刪改)
ECHO 歡迎使用軟媒魔方!
ECHO.
pause
————————— 分割線 —————————
以上代碼就是為你的bat內(nèi)容獲取管理員權(quán)限用的,加在你的代碼之前就可以用了。運行效果如下:
▲圖片說明:如果你的系統(tǒng)開啟了UAC,那么就需要運行后批準一下(別嫌麻煩,最好開啟UAC,比較安全)
▲圖片說明:運行示例(有小伙伴嫌CMD丑,所以你可以在屬性→顏色中調(diào)下背景透明度,再換個喜歡的壁紙……?節(jié)日快樂?)
這個代碼也支持Win7/Win8.1系統(tǒng),效果如下(Windows7為例):
▲圖片說明:Win7的CMD還沒法設(shè)置透明背景
復(fù)制代碼還是比較麻煩,你可以直接下載上述制作好的文件:點此進入網(wǎng)盤
批處理文件做完了,卻發(fā)現(xiàn)沒辦法固定到開始菜單和任務(wù)欄,點此查看解決辦法。很多批處理文件在運行時都需要管理員權(quán)限,然而這些程序往往需要用戶手動以管理員身份運行才能正常運作,這種“半自動化”設(shè)定事實上還是比較麻煩的,要是能夠雙擊運行直接就帶管理員權(quán)限豈不是更放心?其實這也不難,使用IT之家提供的代碼就可以輕松實現(xiàn)自動獲取權(quán)限的功能。Win7/Win8.1/Win10各版本均可使用。
把如下代碼(分割線之間)復(fù)制到記事本中,并保存為 .bat 格式即可(文件名可自擬):
————————— 分割線 —————————
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: 軟媒魔方自動添加批處理文件管理員權(quán)限 ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
@echo off
CLS
ECHO.
ECHO ================================
ECHO 軟媒魔方獲取批處理文件管理員權(quán)限
ECHO ================================
:init
setlocal DisableDelayedExpansion
set "batchPath=%~0"
for %%k in (%0) do set batchName=%%~nk
set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"
setlocal EnableDelayedExpansion
:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
:getPrivileges
if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
ECHO.
ECHO ********************************
ECHO 請求 UAC 權(quán)限批準……
ECHO ********************************
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
ECHO args = "ELEV " >> "%vbsGetPrivileges%"
ECHO For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
ECHO args = args ^& strArg ^& " " >> "%vbsGetPrivileges%"
ECHO Next >> "%vbsGetPrivileges%"
ECHO UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
"%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %*
exit /B
:gotPrivileges
setlocal & pushd .
cd /d %~dp0
if '%1'=='ELEV' (del "%vbsGetPrivileges%" 1>nul 2>nul & shift /1)
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:: 以下為需要運行的批處理文件代碼 ::
:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
rem 本行以下可修改為你需要的bat命令(從上面三行冒號開始到下面都可刪改)
ECHO 歡迎使用軟媒魔方!
ECHO.
pause
————————— 分割線 —————————
以上代碼就是為你的bat內(nèi)容獲取管理員權(quán)限用的,加在你的代碼之前就可以用了。運行效果如下:
▲圖片說明:如果你的系統(tǒng)開啟了UAC,那么就需要運行后批準一下(別嫌麻煩,最好開啟UAC,比較安全)
▲圖片說明:運行示例(有小伙伴嫌CMD丑,所以你可以在屬性→顏色中調(diào)下背景透明度,再換個喜歡的壁紙……?節(jié)日快樂?)
這個代碼也支持Win7/Win8.1系統(tǒng),效果如下(Windows7為例):