[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
先用 vbs 获取管理员权限,vbs 调用的 bat 也就以管理员身份运行了。
Test.vbs
  1. If WSH.Arguments.Count = 0 Then
  2.     CreateObject("Shell.Application").ShellExecute "WScript.exe", chr(34) & WSH.ScriptFullName&chr(34) & " arg",, "runas", 1
  3.     WSH.Quit
  4. End If
  5. bat = Left(WSH.ScriptFullName, InStrRev(WSH.ScriptFullName,"\")) & "1.bat"
  6. CreateObject("WScript.Shell").Run chr(34) & bat & chr(34), 0
复制代码
2

评分人数

TOP

回复 5# 老刘1号


    不错,以前没注意这些细节,可以省掉参数判断,省掉 Run 了。
官方文档在这里:https://docs.microsoft.com/en-us ... /shell-shellexecute
不过 bat 放在第2个参数可能需要指定绝对路径
Test.vbs
  1. bat = Left(WSH.ScriptFullName, InStrRev(WSH.ScriptFullName,"\")) & "1.bat"
  2. CreateObject("Shell.Application").ShellExecute "cmd.exe", "/c """ & bat & """", , "runas", 0
复制代码
更直接的办法:
Test.vbs
  1. CreateObject("Shell.Application").ShellExecute "1.bat", , , "runas", 0
复制代码
1.bat
  1. @echo off
  2. pushd "%~dp0"
  3. echo;Your Code
复制代码
1

评分人数

TOP

回复 7# hentai87


    假设你的批处理位于 %AppData%\abc\1.bat
vbs
  1. bat = CreateObject("WScript.Shell").SpecialFolders("AppData") + "\abc\1.bat"
  2. CreateObject("Shell.Application").ShellExecute bat, , , "runas", 0
复制代码
1

评分人数

TOP

返回列表