·

让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、:标签 注释内容(可以用作标签下方段的执行内容)

·

最新文章

  1. Java集合---ConcurrentHashMap原理分析
  2. .NET跨平台之旅:升级ASP.NET Core示例站点
  3. SqlServer 产生随机数
  4. jQuery.serialize()函数
  5. 机器人学 —— 机器人感知(Gaussian Model)
  6. LeetCode18 4Sum
  7. 自动化测试平台CATP
  8. 4 - SQL Server 2008 之 使用SQL语句删除表格
  9. phantomjs,selenium,pyv8,pythonwebkit,,,,,,,,,,,,,
  10. Maven-01 安装maven
  11. java 笔记 Thread.currentThread().getContextClassLoader() 和 Class.getClassLoader()区别
  12. Leetcode-颠倒整数
  13. 日志管理工具之logrotate
  14. MAVEN简介之——pom.xml
  15. tree-lstm初探
  16. Oracle 12c的自增列Identity Columns
  17. Oracle_SQL(3) DML增删改
  18. 使用scrapy框架爬取自己的博文
  19. bzoj 4176: Lucas的数论 -- 杜教筛,莫比乌斯反演
  20. cocos2dx 3.0 中文 iconv 转换函数

热门文章

  1. Python Special Methods - 特殊方法
  2. ELF和BIN的区别,资料整理
  3. 高级安全Windows防火墙概述以及最佳实践
  4. webpack之打包分析以及prefetching和preloading
  5. Vue与React的区别
  6. hadoop3自学入门笔记(1)——虚拟机安装和网络配置
  7. 记一次Postgres CPU爆满故障
  8. redis集群redis-cluster搭建
  9. ts中的装饰器
  10. 解决visual studio 2013编译过程中存在的无法打开kernel.lib问题