我有一个Windows命令行实用程序,它将文本输出到标准输出,以及记录到文件。这两个输出相互补充,因此我希望能够将两个流组合在一起。标准输出将保持不变。但是,我的目标是获取日志文件的块,处理它们,并将其发送到标准输出。
我的第一次尝试是:
[HashTable] $queue = @{};
$roboDealerJob = Start-Job -ScriptBlock {
Param(
[string] $outputFile,
[HashTable] $queue
)
& "utility.exe" $outputFile |
ForEach-Object
{
$queue.Add($_, $_);
}
} -Name "MyUtility" -ArgumentList $outputFile,$queue;
While (!(Test-Path $logFile))
{
Start-Sleep -Milliseconds 100;
}
Get-Content -Path $logFile -Tail 1 -Wait |
ForEach-Object {
Receive-Job $roboDealerJob
ForEach ($item in $queue.Values)
{
Write-Host $item;
$queue.Remove($item);
}
Write-Host $_;
}
但是,这项工作似乎没有运行。
有关如何执行此操作的任何建议吗?