C# Измените папку и запустите процесс в CMD, дождитесь его завершения
Мне нужно открыть внешний процесс из моего приложения Windows Forms. Более того, мне нужно сделать это несколько раз во время выполнения приложения. По сути, я выполняю файл.exe с аргументами несколько раз из командной строки, однако мне нужно изменить папку, где находится.exe, чтобы он работал правильно. Пока я открываю cmd так:
ProcessStartInfo processStartInfo = new ProcessStartInfo("cmd.exe");
processStartInfo.RedirectStandardInput = true;
processStartInfo.RedirectStandardOutput = true;
processStartInfo.UseShellExecute = false;
Process process = Process.Start(processStartInfo);
Затем с помощью process.WriteLine для подачи команд в CMD.
process.StandardInput.WriteLine("Awin.exe -X " + filePath + "/" + fileNumber + " ID=\"" + id + "\"");
И мне нужно сделать это для нескольких файлов fileNumber. Кроме того, мне нужно подождать, пока процесс начнется от ввода до конца, прежде чем перейти к следующему. Есть ли лучший способ сделать это, потому что я не получаю хорошие результаты от использования process.WaitForExit
1 ответ
ProcessStartInfo
класс имеет WorkingDirectory
имущество.
ProcessStartInfo processStartInfo = new ProcessStartInfo("cmd.exe");
processStartInfo.WorkingDirectory = your_directory
(...)
//do your thing
Process process = Process.Start(processStartInfo);
Аргументы могут быть переданы через Arguments
имущество