用c#将控制台的输出写入文件

本文关键字:文件 输出 控制台 | 更新日期: 2023-09-27 18:02:26

我试图将命令窗口的输出写入文件,我可以正确地获得输出,并使用控制台显示它。然而,它似乎没有得到登录到我想写的文件?

 using (StreamWriter sw = new StreamWriter(CopyingLocation, true))
   { 
    Process cmd = new Process();
    cmd.StartInfo.FileName = "cmd.exe";
    cmd.StartInfo.RedirectStandardInput = true;
    cmd.StartInfo.RedirectStandardOutput = true;
    cmd.StartInfo.CreateNoWindow = false;
    cmd.StartInfo.UseShellExecute = false;
    cmd.Start();

    string strCmdText = "Some Command";
    string cmdtwo = "Some Other Command";

    cmd.StandardInput.WriteLine(cmdtwo);
    cmd.StandardInput.WriteLine(strCmdText);
    cmd.StandardInput.Flush();
    cmd.StandardInput.Close();
    //Writes Output of the command window to the console properly
    Console.WriteLine(cmd.StandardOutput.ReadToEnd());
    //Doesn't write the output of the command window to a file
    sw.WriteLine(cmd.StandardOutput.ReadToEnd());
   }

用c#将控制台的输出写入文件

当您调用ReadToEnd()时,它将读取所有内容,并且所有输出都已被消耗。你不能再打了。

您必须将输出存储在一个变量中,并将其输出到控制台并写入文件。

string result = cmd.StandardOutput.ReadToEnd();
Console.WriteLine(result);
 sw.WriteLine(result);