Подтвердить что ты не робот

Разница PowerShell между Write-Host и Write-Output?

В чем разница между Write-Host и Write-Output в PowerShell?

Как...

Write-Host "Hello World ";

Write-Output "Hello World";
4b9b3361

Ответ 1

В двух словах, Write-Host записывает на консоль. Подумайте об этом как о MsgBox в VBScript. Write-Output, с другой стороны, записывается в конвейер, поэтому следующая команда может принять его как свой вход. Вы не обязаны использовать Write-Output для записи объектов, поскольку Write-Output неявно вызывается для вас.

PS> Get-Service

будет таким же, как:

PS> Get-Service | Write-Output

Ответ 2

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, что делать с выходом в конвейер, назначив его переменной или передав ее в команду anoher, тогда она будет отправлена ​​по умолчанию, что обычно является консолью, поэтому конечный результат выглядит одинаково.

Ответ 3

Write-Output отправляет данные в виде объекта по конвейеру. В примере "Вопросы" он просто передаст строку.

write-host зависит от хоста. В консоли write-host по существу выполняется [console]::WriteLine. Подробнее см. .

Ответ 4

Другое отличие между Write-Host и Write-Output:

  • Write-Host отображает сообщение на экране, но не записывает его в журнал

  • Write-Output записывает сообщение в журнал, но оно не отображает его на экране.

И Write-Host считается вредным. Вы можете увидеть подробное объяснение в Write-Host считается вредным.