Wie man Informationsnachrichten in PowerShell ausgibt
- Einführung in das Exportieren von Ausgaben in PowerShell
-
der
Write-Output
Cmdlet in PowerShell -
der
Write-Host
undWrite-Information
Cmdlet in PowerShell -
der
Write-Warning
Cmdlet in PowerShell -
der
Write-Debug
Cmdlet in PowerShell -
der
Write-Error
Cmdlet in PowerShell -
der
Write-Verbose
Cmdlet in PowerShell

Das Schreiben von Informationsnachrichten in die Konsole ist ein wesentlicher Prozess in jeder Sprache, da es dem Benutzer korrekt Rückmeldung gibt. Es gibt jedoch verschiedene Möglichkeiten, Nachrichten in Windows PowerShell auszugeben.
Dieser Artikel wird die verschiedenen Schreibbefehle differenzieren, wie das Schreiben von Informations-, Warn- und Fehlermeldungen, und Situationen bereitstellen, in denen und wo wir sie verwenden können.
Einführung in das Exportieren von Ausgaben in PowerShell
Bevor wir mit der Diskussion der verschiedenen Schreibbefehle beginnen, ist es erwähnenswert, dass PowerShell eine Nachricht durch das Einfassen einer einzelnen Zeile in einfache (''
) oder doppelte Anführungszeichen (""
) ausgeben kann.
Beispielcode:
"Hello World!"
'Hello World'
Ausgabe:
Hello World!
Hello World
Diese Syntax ist in PowerShell aufgrund des literalen Ausdrucks der Zeichenfolge und der versteckten Zeichenfolgenpipeline möglich. Die mehreren oben stehenden Code-Snippets sind gleichwertig mit dem unten stehenden Beispielcode.
Beispielcode:
"Hello World!" | Out-Host
Der Befehl Out-Host
sendet die Objekte, die zur Anzeige auf der Konsole vorgesehen sind.
der Write-Output
Cmdlet in PowerShell
Die erste Druckmethode ist der Befehl Write-Output
. Dieses Cmdlet ist die grundlegendste Syntax aller Druckmethoden innerhalb der PowerShell-Skripting-Umgebung.
Wir können es mit vielen verschiedenen grundlegenden Druckmethoden anderer Sprachen wie print
und stdout
gleichsetzen.
Beispielcode:
Write-Output "Hello World!"
Ausgabe:
Hello World!
der Write-Host
und Write-Information
Cmdlet in PowerShell
Der Befehl Write-Host
ist eine weitere Druckmethode, die der vorherigen, Write-Output
, ähnelt.
Der einzige Unterschied dieses Befehls, bevor er in PowerShell 5.0 aktualisiert wurde, ist, dass die Methode nur Nachrichten mit unterschiedlichen Farben mithilfe der Parameter -BackgroundColor
und -ForegroundColor
ausgeben kann.
Wie bereits erwähnt, ist Write-Host
seit Windows PowerShell 5.0 ein Wrapper für Write-Information
. Dies ermöglicht es uns, Write-Host
zu verwenden, um Ausgaben an den Informationsstream zu senden.
Dieses Cmdlet ermöglicht die Unterdrückung oder Erfassung von Daten, die mit dem Befehl Write-Host
geschrieben wurden, während die Abwärtskompatibilität beibehalten wird.
Die Präferenzvariable $InformationPreference
und der Standardparameter -InformationAction
beeinflussen keine Write-Host
-Nachrichten. Die Ausnahme von dieser Regel ist -InformationAction Ignore
, das effektiv die Ausgabe von Write-Host
unterdrückt.
Das Schreiben in den Informationsstream mithilfe von Write-Host
oder Write-Information
wird keine Probleme mit Ihrer Ausgabestring erzeugen.
Wir können auch die Sichtbarkeit des Informationsstroms manipulieren, wenn wir den Parameter -InformationAction
verwenden, vorausgesetzt, wir binden auch den gegebenen Parameterwert an die Write-Host
-Anweisungen in der Funktion.
Zum Beispiel wird das folgende Beispiel standardmäßig den Informationsstrom deaktivieren, es sei denn, es wird anders über den Parameter -InformationAction
angefordert.
Write-Host 'This is a test message' -InformationAction $InformationPreference -ForegroundColor Green
der Write-Warning
Cmdlet in PowerShell
Der Befehl Write-Warning
schreibt eine Warnmeldung an den Windows PowerShell-Host. Die Reaktion auf das Warnereignis hängt vom Wert der $WarningPreference
-Variable des Benutzers und vom Standardparameter -WarningAction
ab.
Die gültigen Werte der $WarningPreference
-Variable sind wie folgt.
Stop
- Zeigt die Warn- und Fehlermeldungen an und stoppt dann die Ausführung.Inquire
- Zeigt die Warnmeldung an und fordert den Benutzer auf, die Erlaubnis zur Fortsetzung in Form einer Bestätigungsnachricht zu geben.Continue
- Der Standardwert der Variablen. Zeigt die Warnmeldung an und führt sie dann aus.SilentlyContinue
- Zeigt die Warnmeldung nicht an. Fährt mit der Ausführung fort.
Beispielcode:
Write-Warning "This is only a test warning notification." -WarningAction Continue
der Write-Debug
Cmdlet in PowerShell
Der Befehl Write-Debug
ist ebenfalls eine weitere Methode zum Drucken in PowerShell. Dieser wird jedoch häufig mehr in der Entwicklung für das Drucken von Debug-Nachrichten in der Skripting-Umgebung verwendet.
Die Debug-Nachrichten werden standardmäßig nicht angezeigt, können jedoch mithilfe der Variablen $debugPreference
geändert werden.
Beispielcode:
Write-Debug "Error on line 1. Please investigate."
$debugPreference = "Continue"
Write-Debug "Error on line 5. Please investigate."
Ausgabe:
DEBUG: Error on line 5. Please investigate.
der Write-Error
Cmdlet in PowerShell
Der Befehl Write-Error
gibt einen nicht-terminierenden Fehler aus. Standardmäßig werden die Fehler im Fehlersstream an das PowerShell-Hostprogramm gesendet, um zusammen mit der Ausgabe exportiert zu werden.
Um einen nicht-terminierenden Fehler auszugeben, geben Sie einen Fehlernachrichtstring, ein ErrorRecord
-Objekt oder ein Exception
-Objekt ein. Verwenden Sie dann die verschiedenen Parameter von Write-Error
, um den Fehlerdatensatz zu erstellen, den wir exportieren werden.
Nicht-terminierende Fehler schreiben einen Fehler in den Fehlerstream, stoppen jedoch nicht die Befehlsverarbeitung. Wenn beispielsweise ein nicht-terminierender Fehler bei einem Element in einer Gruppe von Eingabeelementen auftritt, fährt das Cmdlet fort, die anderen Elemente zu verarbeiten.
Beispielcode:
Write-Error "Invalid object" -ErrorId B1 -TargetObject $_
Ausgabe:
Write-Error "Invalid object" -ErrorId B1 -TargetObject $_ : Invalid object
+ CategoryInfo : NotSpecified: (:) [Write-Error], WriteErrorException
+ FullyQualifiedErrorId : B1
der Write-Verbose
Cmdlet in PowerShell
Der Befehl Write-Verbose
schreibt Text in den detaillierten Nachrichtenstream in PowerShell.
Wie der Befehl Write-Debug
wird die detaillierte Nachricht standardmäßig nicht angezeigt, kann jedoch mithilfe der Variablen $VerbosePreference
oder durch Hinzufügen des Schalterparameters -Verbose
angezeigt werden.
Beispielcode:
Write-Verbose -Message "This will not be displayed."
Write-Verbose -Message "This will be displayed" -Verbose
Ausgabe:
VERBOSE: This will be displayed
Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.
LinkedIn