C#在CMD中更改文件夹并启动进程,等待它完成

时间:2016-11-23 22:11:28

标签: c# cmd process

我需要从我的Windows窗体应用程序中打开外部进程。更重要的是,我需要在应用程序的运行时间内多次执行此操作。基本上,我在命令提示符下多次执行带有参数的.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 个答案:

答案 0 :(得分:0)

ProcessStartInfo类具有WorkingDirectory属性。

ProcessStartInfo processStartInfo = new ProcessStartInfo("cmd.exe");
processStartInfo.WorkingDirectory = your_directory
(...)

//do your thing
Process process = Process.Start(processStartInfo);

参数可以通过Arguments属性

传递