Was ist der Unterschied zwischen Write-Host und Write-Output in PowerShell?
Mögen...
Write-Host "Hello World ";
Write-Output "Hello World";
windows
powershell
daniyalahmad
quelle
quelle
Write-Output sendet die Ausgabe an die Pipeline. Von dort kann es an ein anderes Cmdlet weitergeleitet oder einer Variablen zugewiesen werden. Write-Host sendet es direkt an die Konsole.
Ausgänge:
Wenn Sie Powershell nicht mitteilen, was mit der Ausgabe an die Pipeline zu tun ist, indem Sie sie einer Variablen zuweisen oder an einen anderen Befehl weiterleiten, wird sie an den Standardwert gesendet, bei dem es sich normalerweise um die Konsole handelt, sodass das Endergebnis gleich aussieht .
quelle
Write-Output
sendet die Daten als Objekt durch die Pipeline. Im Beispiel "Fragen" wird nur eine Zeichenfolge übergeben.write-host
ist hostabhängig. In der Konsolewrite-host
geht es im Wesentlichen[console]::WriteLine
. Sehen Sie diese für weitere Informationen.quelle
Write-Ouput
sendet Objekte. Diesmal war es eine Zeichenfolge, aber im Allgemeinen sendet sie Objekte und ist normalerweise nicht erforderlich, da dies die Standardmethode für die Ausgabe von Ergebnissen / Daten ist :)Ein weiterer Unterschied zwischen Write-Host und Write-Output:
Write-Host zeigt die Nachricht auf dem Bildschirm an, schreibt sie jedoch nicht in das Protokoll
Write-Output schreibt eine Nachricht in das Protokoll, zeigt sie jedoch nicht auf dem Bildschirm an.
Und Write-Host wird als schädlich angesehen. Eine ausführliche Erklärung finden Sie unter Write-Host als schädlich eingestuft .
quelle
Write-Output
die Meldung wird auf dem Bildschirm angezeigt, wenn Sie das Skript selbst ausführen. Ich bin mir also nicht sicher, was Sie mit "Write-Output schreibt eine Nachricht in das Protokoll, aber sie wird nicht auf dem Bildschirm angezeigt" meinen. ?