讓bat文件自動以管理員身份運行


·

讓bat文件自動以管理員身份運行

 

如何讓bat文件自動以管理員身份運行,將這段寫在bat文件的前頭即可 :

%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit cd /d "%~dp0"

 

代碼預覽:

::  讓bat文件自動以管理員身份運行 (下面這一段)
%1 mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c %~s0 ::","","runas",1)(window.close)&&exit cd /d "%~dp0"

 

調整后的完整代碼:
  (注意:在 :: 完成獲取,下面可以開始寫你自己的代碼了 之后都是注釋說明,可以刪除掉。

@echo off
title 運行bat批處理腳本時先提示獲取管理員權限
mode con cols=100 lines=20
color 3f

:: 開始獲取管理員權限
setlocal
set uac=~uac_permission_tmp_%random%
md "%SystemRoot%\system32\%uac%" 2>nul
if %errorlevel%==0 ( rd "%SystemRoot%\system32\%uac%" >nul 2>nul ) else (
    echo set uac = CreateObject^("Shell.Application"^)>"%temp%\%uac%.vbs"
    echo uac.ShellExecute "%~s0","","","runas",1 >>"%temp%\%uac%.vbs"
    echo WScript.Quit >>"%temp%\%uac%.vbs"
    "%temp%\%uac%.vbs" /f
    del /f /q "%temp%\%uac%.vbs" & exit )
endlocal
:: 完成獲取,下面可以開始寫你自己的代碼了

echo.
echo 原理:先嘗試在系統目錄下臨時新建一個文件夾,若已獲取管理員權限或是運行在XP等不需要管理員權限的
echo       老系統時,是可以新建成功的,此時只需刪除這個臨時新建的文件夾就好了,否則通過創建一個臨時
echo       vbs腳本獲取管理員權限,然后再刪除這個臨時vbs腳本文件。
echo.
echo 提示:當獲取管理員目錄后,你的批處理運行目錄會發生變化,為保證目錄准確,
echo       可通過 cd 切換目錄,例“cd /d %%~dp0”切換回批處理所在目錄
echo.
echo 當前運行目錄: %cd%\
echo 批處理所在目錄:%~dp0
echo.
echo 例:切換回批處理所在目錄
echo cd /d %%~dp0
echo.

cd /d %~dp0

echo 當前運行目錄: %cd%\
echo 批處理所在目錄:%~dp0	

pause
exit

  

 ————————————

附:bat cmd 注釋方法

寫bat批處理也一樣,都要用到注釋的功能,這是為了程式的可讀性

  在批處理中,段注釋有一種比較常用的方法:

    goto start
     = 可以是多行文本,可以是命令
     = 可以包含重定向符號和其他特殊字符
     = 只要不包含 :start 這一行,就都是注釋
    :start


   另外,還有其他各種注釋形式,比如:
 
   1、:: 注釋內容(第一個冒號后也可以跟任何一個非字母數字的字符)
    2、rem 注釋內容(不能出現重定向符號和管道符號)
    3、echo 注釋內容(不能出現重定向符號和管道符號)〉nul
    4、if not exist nul 注釋內容(不能出現重定向符號和管道符號)
    5、:注釋內容(注釋文本不能與已有標簽重名)
    6、%注釋內容%(可以用作行間注釋,不能出現重定向符號和管道符號)
    7、goto 標簽 注釋內容(可以用作說明goto的條件和執行內容)
    8、:標簽 注釋內容(可以用作標簽下方段的執行內容)

 

 

 

·

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM