C# 重定向进程输入并使用shell执行
是否可以只重定向C# 重定向进程输入并使用shell执行,c#,process,stdout,stdin,C#,Process,Stdout,Stdin,是否可以只重定向stdin,同时允许stdout写入控制台 我有一个进程,它启动子进程,需要读取这些进程的输出,但也需要在控制台中显示。可能吗?我试图创建自己的控制台进程,但除非我使用ShellExecute,并且其目的是在控制台中显示输出,否则无法对其进行写入 protected void startp() { Process p = new Process(); ProcessStartInfo psi = new ProcessStartInfo(); psi.F
stdin
,同时允许stdout
写入控制台
我有一个进程,它启动子进程,需要读取这些进程的输出,但也需要在控制台中显示。可能吗?我试图创建自己的控制台进程,但除非我使用ShellExecute,并且其目的是在控制台中显示输出,否则无法对其进行写入
protected void startp() {
Process p = new Process();
ProcessStartInfo psi = new ProcessStartInfo();
psi.FileName = "cmd.exe";
psi.Arguments = "/k";
//Can't redirect output without UseShellExecute = false
psi.RedirectStandardInput = true;
psi.UseShellExecute = false;
psi.CreateNoWindow = false;
p.StartInfo = psi;
p.Start();
//Can't write to StandardInput with UseShellExecute = true
p.StandardInput.WriteLine("@ECHO OFF");
p.StandardInput.WriteLine("echo | set /p=Child Process");
Console.ReadLine();
p.StandardInput.WriteLine("exit");
}