我试图处理日志文件输出并将其放在绘图上。但是,我无法抓住Get-Content -Wait。 似乎我的C#程序根本没有被调用。没有等待开关就可以正常工作,但这不是我需要的。 简单样本:
using static System.Console;
public class Program
{
public static void Main(string[] args)
{
WriteLine("Starting...");
if (IsInputRedirected)
{
while (In.Peek() != -1)
{
Write("[");
var input = In.ReadLine();
WriteLine($"{input}]");
}
WriteLine("... done.");
}
else
{
WriteLine("Nothing");
}
}
}
使用类似的示例调用:
gc .\Program.cs | .\bin\Debug.ConsoleTest.exe
和
gc .\Program.cs -Wait | .\bin\Debug.ConsoleTest.exe
有人知道如何从控制台应用程序使用-Wait接收Get-Content的输出吗?
答案 0 :(得分:0)
Get-content用于获取文件的内容,而不是剥离程序的输出。 你可以使用日志文件中的get-content,但是要知道如果你使用wait,它会等到你杀死procces等待。
所以简而言之Get-content -Wait仅用于跟踪从其他进程写入的日志文件。
只需使用.\Program.cs | .\bin\Debug.ConsoleTest.exe
,它就会等到退出。
如果你想要stdout和stderror,你需要一个像Here所描述的结构(请注意使用$stdout = $p.StandardOutput.ReadToEnd() ;$stderr = $p.StandardError.ReadToEnd()
进行大输出时出现问题,它们会相互死锁)