2013-05-11 68 views
0

将控制台的输出保存到.txt文件时出现问题。有人可以帮我弄这个吗 ? txt文件中只有一行“Enter input”。而已。试图将控制台的输出保存到txt文件

 ProcessStartInfo startInfo = new ProcessStartInfo("plink.exe"); 
     startInfo.RedirectStandardError = true; 
     startInfo.Arguments = "@xxx.xxx.xxx.xxx -l xxx-pw xxxx"; 
     startInfo.RedirectStandardInput = true; 
     startInfo.RedirectStandardOutput = true; 
     startInfo.UseShellExecute = false; 
     Process process = new Process(); 

     process.OutputDataReceived += (sender, e) => 
     { 
      string Results = e.Data; 
      Console.WriteLine(Results); 
      //Console.WriteLine(e.Data); 
     }; 


     FileStream ostrm; 
     StreamWriter writer; 
     TextWriter oldOut = Console.Out; 

     process.StartInfo = startInfo; 
     process.Start(); 

     ostrm = new FileStream("D:/userdata/xxx/Desktop/Redirect.txt", FileMode.OpenOrCreate, FileAccess.Write); 
     writer = new StreamWriter(ostrm); 

     Console.WriteLine("Enter input:"); 
     string line = Console.ReadLine(); 

     Console.SetOut(writer); 

     process.BeginOutputReadLine(); 
     process.StandardInput.WriteLine("c7xtermx -n xxxxxxx"); 
     process.StandardInput.WriteLine("ZEEI:BCF=" + line + ";"); 

     Console.SetOut(oldOut); 
     writer.Close(); 
     ostrm.Close(); 
     process.WaitForExit(); 
+0

你的代码是什么样子? – adrianbanks 2013-05-11 23:22:45

+0

我已更新代码 – user2373934 2013-05-12 07:09:36

回答

0

进程可能试图在所有数据刷新之前读取一行。添加到您的代码,并让我知道它是否工作:

writer.AutoFlush = true; 
+0

不,它不工作。 – user2373934 2013-05-12 07:03:13

相关问题