1

我正在尝试启动一个新的 cmd 进程,从它运行一个批处理文件到设置环境,然后从它运行自定义命令。这可能吗?

到目前为止,我有:

Process cmd = new Process();
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo.Filename = <setup.cmd path>
cmd.StartInfo.CreateNoWindow = false;
cmd.StartInfo.RedirectStandardInput = true;
cmd.Start()

这成功设置了环境,但 cmd 窗口立即关闭,我无法提交更多命令。

4

1 回答 1

2

只需添加 ProcessStartInfo.Arguments 并将“/K”作为值传递

Process cmd = new Process();
cmd.StartInfo.UseShellExecute = false;
cmd.StartInfo.FileName = "cmd.exe";
cmd.StartInfo.Arguments = "/K";
cmd.StartInfo.CreateNoWindow = false;
cmd.StartInfo.RedirectStandardInput = true;
cmd.Start();

传递参数/K将强制命令窗口保持打开
您还可以在后面添加批处理文件的名称/K

cmd.StartInfo.Arguments = "/K yourbatch.cmd args1 args2";
于 2013-04-10T21:27:10.180 回答