C#RedirectStandardInput打破FTP - 为什么?

时间:2015-01-15 22:13:18

标签: c# winapi console console-application

我正在寻找一个明确的答案。

由于某种原因(一些建议缓冲区不刷新,其他人建议使用较低级别的API)我发现当重定向标准输入流时,某些命令行应用程序(特别是ftp.exe)的输出不同。

这清楚地隔离并证明了差异:

    Process p = new Process();
    ProcessStartInfo psi = new ProcessStartInfo();
    psi.FileName = "cmd.exe";
    psi.Arguments = " /c ftp";
    psi.UseShellExecute = false;
    // when false, the ftp prompt is shown            
    psi.RedirectStandardInput = true; 

    p.StartInfo = psi;
    p.Start();

    while (true) 
    {
        Thread.Sleep(100); 
    }

如果有人能把它放到床上,我会非常感激。 我不是在寻找编写FTP客户端实现的建议 - 我只是想知道地狱“ftp>”的去向,以及为什么只有当我重定向标准输入流时。重定向其他流(输出和未启动的错误)不会产生相同的效果。

TIA

0 个答案:

没有答案