从plink获取重定向输出

时间:2015-02-07 19:28:38

标签: c# .net

我目前正在尝试编写一个运行plink的函数,并捕获该进程的输出。当我尝试使用StandardOutput时,我什么都没得到,当我尝试使用StandardError时,我得到“无法读取标准输入:句柄无效。”我只能假设这意味着当plink正在等待输入时我正在尝试阅读。我也通过一个名为apCommands.txt的文本文件传递我的命令。当我手动运行此命令它工作并给我所需的输出,我只是无法弄清楚为什么我不能重定向该输出,所以我可以将它存储在结果文件中。这是我现在的代码。

        string pArgs = "-m \"" + ABSPATH + "\\apCommands.txt\" -ssh myHost -l user -pw password";
        string output;

        if (File.Exists(ABSPATH + "\\apTest.txt"))
            File.Delete(ABSPATH + "\\apTest.txt");
        StreamWriter apTest = new StreamWriter(ABSPATH + "\\apTest.txt");

        Process runAP = new Process();
        ProcessStartInfo apInfoStart = new ProcessStartInfo(ABSPATH + "\\plink.exe");
        apInfoStart.Arguments = pArgs;
        apInfoStart.RedirectStandardOutput = true;
        apInfoStart.CreateNoWindow = true;
        apInfoStart.UseShellExecute = false;
        runAP.StartInfo = apInfoStart;
        runAP.Start();

        output = runAP.StandardOutput.ReadToEnd();
        runAP.WaitForExit();
        apTest.WriteLine("Standard Output");
        apTest.WriteLine(output);
        apTest.Close();
        runAP.Close();

谢谢,

0 个答案:

没有答案