Я запускаю процессы из C #, используя следующий код;
private static void ExecuteShellCMD(string workingDir, string commandWithArgs, bool bWait = true)
{
ProcessStartInfo info = new ProcessStartInfo();
info.Verb = "runas";
info.FileName = "cmd.exe";
info.WorkingDirectory = workingDir;
info.Arguments = "/C " + commandWithArgs;
info.UseShellExecute = false;
using (Process myProcess = Process.Start(info))
{
if (bWait)
{
myProcess.WaitForExit();
}
int ExitCode = myProcess.ExitCode;
//Log exit code here.
}
}
Он загружает командное окно с повышенными правами и выполняет код / файл bat, который я передаю, но без что-либо записывает на консоль. Похоже, что это не согласуется на других машинах, и раньше это работало на моей машине, и я подумал, есть ли у кого-нибудь идеи о том, как я могу последовательно сделать этот Процесс, просто печатая логи в командном окне, которое создает процесс.
Я вижу журналы, если я установил UseShellExecute = true
, но затем не могу использовать Verb
без принятия запроса на повышение прав, что нежелательно.
Я пытался найти решения в Интернете, и я знаю, что могу перенаправить вывод, используя другие настройки. Кажется, что большинство вопросов и руководств по этой теме имеют дело с перенаправлением вывода куда-то еще, но я хочу иметь возможность отслеживать прогресс в самом командном окне.
Возможно, я пропустил аргумент командной строки или подобное?