创建一个.bat文件以管理员身份运行exe

时间:2016-11-25 11:08:32

标签: windows batch-file exe administrator

我已经创建了一个用于运行setup.exe的批处理文件(下面的代码),但是我遇到了将setup.exe变为"以管理员身份运行的问题"。我使用了this指南(快捷方法)来获取帮助。

    volatile Runnable feedToBuffer = new Runnable()
        {
            @Override
            public synchronized void run() 
{
    if(boolean)
    {
    MethodA();
    }
    else
    {
    MethodB();
    }
}

注意:我的文件最终会被刻录到DVD磁盘上。它们目前位于volatile Runnable feedToBuffer = new Runnable() { @Override public synchronized void run() { if(boolean) { //Code that was in MethodA } else { //Code that was in MethodB } } } 目录中。

批处理文件代码在运行批处理文件时(即不运行快捷方式)运行setup.exe(没有管理员权限)。

但是,当我通过快捷方式运行批处理文件时,Windows会显示错误start "" %CD%\Setup.exe

setup.exe目录不在system32文件夹中。为什么运行批处理文件会发现setup.exe正常,但是当我通过快捷方式运行它时(因此我可以以管理员身份运行setup.exe)?

2 个答案:

答案 0 :(得分:3)

您可以在快捷方式本身中设置工作目录,也可以不从工作目录(%CD%)运行Setup.exe,而是从脚本所在的目录运行:

start "" "%~dp0\Setup.exe"

与之前的答案不同的是,cd%~dp0不需要stage("check out project") { shell "pwd" echo "test 1" git credentialsId: "user", url: "http://url/project" echo "test 2" shell "git --version" echo "test 3" } 。只需以完整路径运行设置。

答案 1 :(得分:2)

默认情况下,管理员特权脚本从C:\Windows\system32\

开始

尝试将cd /d "%~dp0"放在脚本的开头,该^(проезд|пл|пр-кт|пер|наб|линия|км|б-р|аллея|кв-л)\s(.+)$(?<!\)) ^^^^^^^ 应该change the work directory到脚本的一个。如果要使用admin创建快捷方式,可以检查this命令行的权限。