Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 重定向进程输入并使用shell执行_C#_Process_Stdout_Stdin - Fatal编程技术网

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");
}