2015-11-21 65 views
0

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

我还发现另一个选项来做它作为一个.vbs脚本,但我需要从运行对话框中调用此.vbs文件和运行需要手动添加扩展名为.vbs文件。

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

+3

[我如何自动提升我的批处理文件,以便它根据需要从UAC管理员权限请求?](http://stackoverflow.com/a/28467343) - 我已经链接了这个特定的答案。 – wOxxOm

回答

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 

如果你把你的批处理文件的顶部,它提供了“执行为管理员”提示用户并重新启动当前批处理文件管理

相关问题