Powershell :получить вывод из Receive -Job

У меня есть коллекция заданий, которые выполняются. Когда они завершатся, я использую задание на получение -, и оно записывает вывод на экран. Я хотел бы взять этот вывод и записать его в файл. Я не хочу просматривать вывод, полученный во время выполнения заданий, потому что при одновременном запуске нескольких заданий журналирование будет перемежаться. Получить -Работа | Прием -Задание распечатывает выходные данные хорошо организованным образом.

Я пробовал все следующее, и вывод не записывается в файл или сохраняется в переменной,он просто выходит на экран:

#Wait for last job to complete
While (Get-Job -State "Running") {    
    Log "Running..." -v $info
    Start-Sleep 10        
}    
Log ("Jobs Completed. Output:") -v $info

# Getting the information back from the jobs
foreach($job in Get-Job){
    Receive-Job -Job $job | Out-File c:\Test.log -Append
    $output = Receive-Job -Job $job        
    Log ("OUTPUT: "+$output)
    Receive-Job -Job $job -OutVariable $foo
    Log ("FOO: "+$foo)
}

РЕДАКТИРОВАТЬ :Я удалил дополнительные вызовы Receive -Job в foreach для следующего после просмотра комментария Кейта:

# Getting the information back from the jobs
foreach($job in Get-Job){
    Receive-Job -Job $job -OutVariable temp
    Write-Host ("Temp: "+$temp)
    $temp | Out-File -FilePath c:\Test.log -Append 
}

Я также проверил, что больше нигде в сценарии не использую задание Receive -Job. Хост $temp записи -и исходящий файл -по-прежнему не выводят ничего.

20
задан Justin Holbrook 15 August 2012 в 20:17
поделиться