在PowerShell中,Write-Host和Write-Output有什么区别?
喜欢...
Write-Host "Hello World ";
Write-Output "Hello World";
在PowerShell中,Write-Host和Write-Output有什么区别?
喜欢...
Write-Host "Hello World ";
Write-Output "Hello World";
Answers:
简而言之,Write-Host
写入控制台本身。在VBScript中将其视为MsgBox 。Write-Output
另一方面,写入管道,因此下一条命令可以接受它作为输入。您不需要使用Write-Output
它来编写对象,就像Write-Output
为您隐式调用的那样。
PS> Get-Service
将与以下相同:
PS> Get-Service | Write-Output
写输出将输出发送到管道。从那里可以将其通过管道传递到另一个cmdlet或分配给变量。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
如果您不通过将其分配给变量或通过管道将其传递给anoher命令来告诉Powershell对管道的输出该怎么做,那么它将被发送到out-default,通常是控制台,因此最终结果看起来是相同的。
Write-Host和Write-Output之间的另一个区别是:
Write-Host在屏幕上显示消息,但不会将其写入日志
Write-Output将消息写入日志,但不会在屏幕上显示。
并且Write-Host被认为是有害的。您可以在“认为写入主机有害”中看到详细说明。
Write-Output
,如果您自己运行脚本,则会在屏幕上显示该消息。因此,我不确定“ Write-Output将消息写入日志,但它不会在屏幕上显示”是什么意思。?