传递参数时以管理员身份运行.bat文件

时间:2015-11-21 20:26:34

标签: windows batch-file shortcut

我有一个.bat文件,它调用第三方应用程序并添加了一些命令行参数。现在我需要这个应用程序以管理员身份运行。我找到了一个选项来创建.bat文件的快捷方式,然后将其设置为以admin身份运行,但后来我无法以这种方式传递命令行参数。

我还发现了另一个选项,可以将其作为.vbs脚本执行,但我需要从“运行”对话框中调用此.vbs文件,“运行”需要手动添加.vbs文件的扩展名。

在这种情况下我该怎么做?

1 个答案:

答案 0 :(得分:0)

看看这段代码:

@ECHO OFF
:: this tests if the file is running as admin
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (GOTO askAdmin)
GOTO gotAdmin
:askAdmin
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "%~s0", "", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
exit /B
:gotAdmin
if exist "%temp%\getadmin.vbs" ( del "%temp%\getadmin.vbs" )
::from this point you can execute your command as admin

如果你把它放在批处理文件的顶部,它会给用户一个"执行管理员"提示并重新启动当前批处理文件作为管理员