Process.StartInfo.WorkingDirecotry бесполезен, если для StartInfo.Verb = "runas" запускать файл .bat (содержит команду cd). - PullRequest
2 голосов
/ 14 марта 2019

Справочная информация: я хочу использовать программу на C # для вызова bat-файла, который перейдет в следующие папки и затем выполнит другой exe-файл.

Вот файл test.bat:

echo test begin

cd test1
setup1.exe

cd test2
setup2.exe

echo test finished
echo off

А вот мой код C #:

using (Process proc = new Process())
{
    string command = @"c:\users\danvy\Desktop\script\test.bat";
    proc.StartInfo.FileName = command;
    proc.StartInfo.WorkingDirectory = Path.GetDirectoryName(command);

    //run as admin
    proc.StartInfo.Verb = "runas";

    proc.Start();
    while (!proc.HasExited)
    {
        proc.WaitForExit(1000);
    }
}

В этом случае setup1.exe и setup2.exe не могут быть реализованы.

Но если строка комментария: proc.StartInfo.Verb = "runas"; Затем можно запустить setup1.exe и setup2.exe.

Это так странно, похоже, когда установлено proc.StartInfo.Verb = "runas"; Рабочий каталог не работает.

По моему мнению, Verb = "runas" только для установки привилегии, позволяющей запускать программу от имени администратора, почему это сделает Process.StartInfo.WorkingDirecotry бесполезным?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...