PowerShell中Write-Host和Write-Output之间的区别是什么?

25 浏览
0 Comments

PowerShell中Write-Host和Write-Output之间的区别是什么?

在PowerShell中,Write-HostWrite-Output之间有什么区别?

比如...

Write-Host "Hello World";
Write-Output "Hello World";

admin 更改状态以发布 2023年5月23日
0
0 Comments

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,通常是控制台,因此最终结果看起来相同。

0
0 Comments

简而言之,Write-Host直接写入控制台本身。可以将其看作VBScript中的MsgBox。另一方面,Write-Output写入管道,因此下一个命令可以将其作为其输入接受。您不需要使用Write-Output来编写对象,因为Write-Output已经为您隐式调用。

PS> Get-Service

与以下代码相同:

PS> Get-Service | Write-Output

0