更新
正如 Greg 在下面的评论中提到的,MSBuild 可以写入日志文件,同时也可以开箱即用地输出到控制台。
MSBuild [options] /filelogger /fileloggerparameters:LogFile=MSBuildLog.txt
Run Code Online (Sandbox Code Playgroud)
尝试以下简单的 C# 程序。它将获取重定向的 STDIN ( Console.In
) 并将其写入一个或多个文件和 STDOUT ( Console.Out
)。
using System;
using System.Collections.Generic;
using System.IO;
namespace RedirectToFile
{
class Program
{
static void Main(string[] args)
{
var buffer = new char[100];
var outputs = new List<TextWriter>();
foreach (var file in args)
outputs.Add(new StreamWriter(file));
outputs.Add(Console.Out);
int bytesRead;
do
{
bytesRead = Console.In.ReadBlock(buffer, 0, buffer.Length);
outputs.ForEach(o => o.Write(buffer, 0, bytesRead));
} while (bytesRead == buffer.Length);
outputs.ForEach(o => o.Close());
}
}
}
Run Code Online (Sandbox Code Playgroud)
我使用它将 MSBuild 批处理文件的输出重定向到磁盘,同时仍然输出到控制台窗口。
Usage: MSBuild [options] | RedirectToFile.exe MSBuildLog.txt
Run Code Online (Sandbox Code Playgroud)