我在编写一段脚本,需要调用一系列嘈杂的其他cmdlet。为了只看到自己脚本的状态消息,我希望不显示其他cmdlet的输出信息。
我尝试过使用 > $null
和 | Out-Null
命令,但这些命令只能隐藏返回值,无法隐藏通过Write-Host
打印的文本。有什么方法可以隐藏/阻止“向下堆栈”打印文本吗?
我在编写一段脚本,需要调用一系列嘈杂的其他cmdlet。为了只看到自己脚本的状态消息,我希望不显示其他cmdlet的输出信息。
我尝试过使用 > $null
和 | Out-Null
命令,但这些命令只能隐藏返回值,无法隐藏通过Write-Host
打印的文本。有什么方法可以隐藏/阻止“向下堆栈”打印文本吗?
尝试在调用吵闹的 cmdlets 之前定义您的虚拟函数 Write-Host
,例如:
function Write-Host {}
Write-Host
,那么这应该会有所帮助。Remove-Item function:Write-Host
- Roman KuzminConsole.WriteLine()
。我该怎么办? - BenjinSystem.Console.SetOut()
,它解决了那个问题。谢谢! - Benjin
Write-Host
是很困难的,但你可以通过将这些 cmdlet 作为作业运行来实现。作业将是一个单独的主机进程,因此没有输出。$Job = Start-Job -Scriptblock {Noisy-Cmdlet};Wait-Job $Job
- TheMadTechnician&{Make-Noise} *> $null
- Mathias R. JessenWrite-Host
输出。 - Ansgar Wiechers