怎样自动以管理员身份运行bat文件?

怎样自动以管理员身份运行bat文件?

正好看到, 那就一行代码解决问题吧

如果VBScript 被砍掉,则可用 powershell 来执行,原理是一样的:

可支持:

需要隐藏窗口执行的话,对于 mshta 版本,只需要改变 0 为 1 即可:

以及 powershell 版本,简单增加 -WindowStyle Hidden 即可:

解释一下:

使用 cmd.exe 来执行,是为了能让脚本在执行时,自动切换到其所在的路径,因为直接通过 ShellExecute执行,并不能做到自动切换目录。

参考:

Shell.ShellExecute method (Shldisp.h) - Win32 apps

ShowWindow function (winuser.h) - Win32 apps

Start-Process (Microsoft.PowerShell.Management) - PowerShell

UPDATE 18.10.12: 将 %~s0 改为 ""%~s0"" 以支持路径中有空格后无法正确执行的问题。

UPDATE 22.11.15 增加进入相同目录的功能,通过 pushd 实现。

UPDATE 23.01.11 增加 powershell 执行方式,以免以后 vbscript 被砍。

UPDATE 23.02.03 通过验权语句去掉 %1 部分,并支持脚本完整传参