我想要的東西以管理員身份運行一個批處理文件,現在我發現:運行批處理作爲管理員
:: ### START UAC SCRIPT ###
if "%2"=="firstrun" exit
cmd /c "%0" null firstrun
if "%1"=="skipuac" goto skipuacstart
:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' (goto gotPrivileges) else (goto getPrivileges)
:getPrivileges
if '%1'=='ELEV' (shift & goto gotPrivileges)
setlocal DisableDelayedExpansion
set "batchPath=%~0"
setlocal EnableDelayedExpansion
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%temp%\OEgetPrivileges.vbs"
ECHO UAC.ShellExecute "!batchPath!", "ELEV", "", "runas", 1 >> "%temp%\OEgetPrivileges.vbs"
"%temp%\OEgetPrivileges.vbs"
exit /B
:gotPrivileges
setlocal & pushd .
cd /d %~dp0
cmd /c "%0" skipuac firstrun
cd /d %~dp0
:skipuacstart
if "%2"=="firstrun" exit
:: ### END UAC SCRIPT ###
:: ### START OF YOUR OWN BATCH SCRIPT BELOW THIS LINE ###
的問題是,我得到了很多在命令提示符中的錯誤,這就是我得到:
C:\用戶\馬克\桌面>如果 「firstrun」 == 「firstrun」 退出
C:\用戶\馬克\桌面>如果 「」 == 「skipuac」 轉到skipuacstart
C:\用戶\馬克\桌面> NET FILE 1> NUL 2> NUL
C:\用戶\馬克\桌面>如果 '2' == '0'(轉到gotPrivileges)否則(轉到 getPrivil EGES )
C:\用戶\馬克\桌面>如果 '' == 'ELEV'(換檔&轉到gotPrivileges)
C:\用戶\馬克\桌面> SETLOCAL DisableDelayedExpansion
C:\ Users \ Mark \ Desktop> set 「batchPath = C:\ Users \ Mark \ Desktop \ Testing.bat」
C:\用戶\馬克\桌面> SETLOCAL EnableDelayedExpansion
C:\用戶\馬克\桌面>回波裝置UAC =的CreateObject( 「Shell.Application」) 1>「C:\我們ERS \馬克\ AppData \ Local \ Temp \ OEgetPrivileges.vbs「
C:\ Users \ Mark \ Desktop> ECHO UAC.ShellExecute」!batchPath!「,」ELEV「,」「, 」runas「,11 >>」 C:\用戶\馬克\應用程序數據\本地的\ Temp \ OEgetPrivileges.vbs」
C:\用戶\馬克\桌面> 「C:\用戶\馬克\應用程序數據\本地的\ Temp \ OEgetPrivileges.vbs」
有沒有辦法解決這個問題,只是檢查管理權限,並要求它沒有?
是的,在腳本的頂部粘貼'@echo off'。 – rojo
這些都不是錯誤。這些是你正在運行的命令。 –
對於我使用批處理來說,這是非常新的,所以我不知道,謝謝@rojo的建議。 – Korkel