我正在努力成为一名优秀的 powerscript 用户,并根据最佳实践使用 Write-Verbose,但我无法从正在运行的作业中获取 Verbose 流。
$Job = Start-Job -Name "Scanning Work Item" -ScriptBlock{
Write-Verbose "Write-Verbose"
Write-Host "Write-Host"
}
while ($Job.HasMoreData -or $Job.State -eq "Running") {
Receive-Job -Job $Job -Verbose
Start-Sleep -Seconds 1
}
其输出是
Write-Host
请只用经过测试的代码来回答,因为我已经花了几个小时尝试 Powershell 脚本的各种排列。
首先,您没有获得任何详细输出,因为您没有更改会话的默认 VerbosePreference。
至于在作业运行时读取详细输出,您可以单独从关联的子作业中读取每个输出流缓冲区,而无需执行接收作业,并且在执行接收作业时不会影响以后的输出,
$Job = Start-Job -Name "Scanning Work Item" -ScriptBlock{
$VerbosePreference = 'Continue'
Write-Verbose "Write-Verbose"
Write-Host "Write-Host"
Start-Sleep -Seconds 10
}
Start-sleep -Seconds 2
$Verbose = $Job.ChildJobs[0].verbose.readall()
$verbose
while ($Job.HasMoreData -or $Job.State -eq "Running") {
Receive-Job -Job $Job
Start-Sleep -Seconds 1
}
Write-Verbose
VERBOSE: Write-Verbose
Write-Host
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)