Справочная информация: я хочу использовать программу на 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 бесполезным?