PowerShell中Write-Host和Write-Output之间的区别是什么?
PowerShell中Write-Host和Write-Output之间的区别是什么?
在PowerShell中,Write-Host和Write-Output之间有什么区别?
比如...
Write-Host "Hello World"; Write-Output "Hello World";
admin 更改状态以发布 2023年5月23日
Write-Output 命令将输出发送到管道。之后,它可以被管道传输到另一个命令或分配给一个变量。Write-Host 命令直接将输出发送到控制台。
$a = 'Testing Write-OutPut' | Write-Output $b = 'Testing Write-Host' | Write-Host Get-Variable a,b
输出结果:
Testing Write-Host Name Value ---- ----- a Testing Write-OutPut b
如果您没有告诉 PowerShell 如何处理管道中的输出,比如将其分配给一个变量或将其传输到另一个命令,那么它将被发送到 out-default,通常是控制台,因此最终结果看起来相同。
简而言之,Write-Host
直接写入控制台本身。可以将其看作VBScript中的MsgBox。另一方面,Write-Output
写入管道,因此下一个命令可以将其作为其输入接受。您不需要使用Write-Output
来编写对象,因为Write-Output
已经为您隐式调用。
PS> Get-Service
与以下代码相同:
PS> Get-Service | Write-Output