2
我有一個控制檯應用程序和一個雙贏的形式應用程序,都需要調出了一些數據的遠程服務器上,他們提出了一個調用膩子的命令行部分砰砰.exe,通過SSH運行遠程命令。Process.WaitForExit()在控制檯VS Windows窗體
我創建了兩個微小的類庫共享,運行以下:
public static string RunCommand(string command, string arguments) {
ProcessStartInfo startInfo = new ProcessStartInfo {
FileName = command,
Arguments = arguments,
UseShellExecute = false,
CreateNoWindow = true,
RedirectStandardOutput = true
};
string output = null;
using (Process p = new Process()) {
p.StartInfo = processStartInfo;
p.Start();
output = p.StandardOutput.ReadToEnd();
p.WaitForExit();
}
return output;
}
在控制檯應用程序一切正常,贏下形成不出錯,似乎WaitForExit()只是不等。我得到一個空字符串輸出。我已經從遠程服務器確認用戶已經登錄,所以看起來命令已經運行。
任何想法?
你的函數在哪裏被調用? – 2009-12-15 21:42:48
我在Program.Main()和主窗體的ctor中都嘗試了相同的結果。 – Gavin 2009-12-15 21:57:20
考慮閱讀'p.StandardError' - 即使只是要確保命令確實按照您的預期完成了。 – 2009-12-15 22:00:38