合并两个作业的输出

时间:2016-11-07 15:40:50

标签: powershell

我有一个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 $_;
}

但是,这项工作似乎没有运行。

有关如何执行此操作的任何建议吗?

0 个答案:

没有答案