需要有关如何将控制台输出/返回值作为字符串的帮助

时间:2013-11-12 06:35:54

标签: powershell

我需要帮助捕获输出消息或在控制台屏幕上返回值,并将它们存储在变量中并在以后重用它们。 我需要这个来记录XMLA执行和错误消息的结果,虽然可以使用$ Error [0]检索Powershell错误,我想探索捕获控制台屏幕上显示的内容的可能性。 我找到了Start-Transcript但写入txt文件似乎不太方便。 提前致谢。

1 个答案:

答案 0 :(得分:1)

如果将其作为后台作业运行,则各种数据流的输出将保存在缓冲区中,您可以单独访问子作业的每个输出流:

$scriptblock = {
 $VerbosePreference = 'Continue'
 $DebugPreference = 'Continue'
 Write-Output "This is output"
 Write-Verbose "This is verbose"
 Write-Warning "This is a Warning"
 Write-Debug "This is Debug"
 Write-Error "This is an Error"
}

 $job = Start-Job -ScriptBlock $scriptblock
 Wait-Job -Job $job
 Receive-Job $job


 $job.ChildJobs[0].Output
 $job.ChildJobs[0].Verbose
 $job.ChildJobs[0].Warning
 $job.ChildJobs[0].Debug
 $job.ChildJobs[0].Error