Apa perbedaan antara Write-Host dan Write-Output di PowerShell?
Seperti...
Write-Host "Hello World ";
Write-Output "Hello World";
Singkatnya, Menulis-Host
menulis untuk konsol itu sendiri. Anggap saja sebagai MsgBox di VBScript. Menulis-Output
, di sisi lain, menulis ke pipa, jadi perintah selanjutnya dapat menerima itu sebagai masukan. Anda tidak diharuskan untuk menggunakan Menulis-Output
dalam rangka untuk menulis benda-benda, seperti Menulis-Output
secara implisit disebut untuk anda.
PS> Get-Service
akan sama:
PS> Get-Service | Write-Output
Menulis-Output mengirimkan output ke pipa. Dari sana bisa disalurkan ke yang lain cmdlet atau diberikan ke sebuah variabel. Menulis-Host mengirimkan langsung ke konsol.
$a = 'Testing Write-OutPut' | Write-Output
$b = 'Testing Write-Host' | Write-Host
Get-Variable a,b
Output:
Testing Write-Host
Name Value
---- -----
a Testing Write-OutPut
b
Jika anda don't memberitahu Powershell apa yang harus dilakukan dengan output ke pipa dengan menetapkan variabel atau pipa untuk anoher perintah, maka akan dikirim ke luar-default, yang biasanya konsol sehingga hasil akhir terlihat sama.
Menulis-Output
mengirimkan data sebagai objek melalui pipa. Dalam contoh Pertanyaan itu hanya akan melewati sebuah string.
menulis-tuan rumah
adalah tempat bergantung. Di konsol menulis-host
pada dasarnya adalah melakukan [console]::WriteLine
.
Lihat ini untuk info lebih lanjut.
Perbedaan lain antara Menulis-Host dan Menulis-Output:
Menulis-Host menampilkan pesan di layar, tapi itu tidak menulis ini untuk log
Menulis-Output menulis pesan ke log, tapi itu tidak menampilkannya pada layar.
Dan Menulis-Host dianggap sebagai berbahaya. Anda dapat melihat penjelasan rinci di Write-Host Dianggap Berbahaya.