zoukankan      html  css  js  c++  java
  • 让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、:标签 注释内容(可以用作标签下方段的执行内容)

    ·

  • 相关阅读:
    jq幻灯片2013-8-31
    jq设置样式
    KindEditor编辑器常用操作
    深入理解JavaScript模拟私有成员
    后台常见报错处理和注意问题(二)
    从项目上一个子查询扩展学习开来:mysql的查询、子查询及连接查询
    在MySQL中使用子查询和标量子查询的基本用法
    HQL语句中数据类型转换,及hibernate中createQuery执行hql报错
    SQL中的cast()函数
    模糊搜索:concat各种函数详解、like操作符、通配符
  • 原文地址:https://www.cnblogs.com/05-hust/p/12365964.html
Copyright © 2011-2022 走看看