Verwenden des Cmdlet \"Write-Host\"

Schreiben von Meldungen in das Konsolenfenster

Mit dem Cmdlet Write-Host können Sie Meldungen in die Windows PowerShell-Konsole schreiben. Beispiel: Haben Sie das dringende Bedürfnis, den Satz This is a message in das Konsolenfenster zu schreiben? Rufen Sie dazu Write-Host auf, und geben Sie anschließend die gewünschte Nachricht ein:

Write-Host "This is a message"

Kein Problem, das Cmdlet schreibt den Satz This is a message in das Konsolenfenster. Schauen wir, ob Write-Host etwas noch Aufregenderes ausgeben kann. Tatsächlich bietet Write-Host zwei optionale Parameter – -foregroundcolor und –backgroundcolor – mit denen Sie verschiedene Textfarben und Texthintergrundfarben angeben können. Mit folgendem Befehl beispielsweise können Sie die Vordergrundfarbe (Text) auf Rot und die Hintergrundfarbe auf Gelb einstellen:

Write-Host "This is red text on a yellow background" -foregroundcolor red -backgroundcolor yellow

So sieht die entsprechende Ausgabe im Konsolenfenster aus:

Windows PowerShell

Wir wussten, dass Sie das mögen. Das sind die Farben, die Sie mit den Parametern –foregroundcolor und –backgroundcolor angeben können:

  • Black (Schwarz)

  • DarkBlue (Dunkelblau)

  • DarkGreen (Dunkelgrün)

  • DarkCyan (Dunkelzyan)

  • DarkRed (Dunkelrot)

  • DarkMagenta (Dunkelmagenta)

  • DarkYellow (Dunkelgelb)

  • Gray (Grau)

  • DarkGray (Dunkelgrau)

  • Blue (Blau)

  • Green (Grün)

  • Cyan (Zyan)

  • Red (Rot)

  • Magenta

  • Yellow (Gelb)

  • White (Weiß)

Es gibt eine interessante Variation, mit der andersfarbiger Text in einer Zeile zusammen mit unformatiertem Text angezeigt werden kann. Der Befehl ruft zuerst Write-Host auf, und schreibt dann den Satz Data for. Beachten Sie, dass dabei der Parameter –nonewline angefügt wird. Wie der Name -nonewline bereits deutlich macht, belässt dieser Parameter den Cursor in der aktuellen Zeile.

Ist das wichtig? Auf alle Fälle: Jedes Mal, wenn Sie Write-Host aufrufen, fügt dieses Cmdlet standardmäßig eine Zeilenumschaltung mit Zeilenvorschub an das Zeilenende an, wodurch der Cursor in die nächste Zeile im Konsolenfenster springt. Wenn Sie allerdings –nonewline verwenden, bleibt der Cursor in der gewünschten Zeile. Dadurch können wir Write-Host ein zweites Mal aufrufen (wobei wir die einzelnen Aufrufe mit Semikolon trennen). Dieses Mal schreiben wir den Computernamen, wobei wir diese Roter-Text-auf-gelbem-Hintergrund-Sache noch einmal wiederholen. Wir fügen ein Semikolon ein, und rufen Write-Host ein drittes Mal auf, wobei wir dieses Mal den Satz "retrieved May 12, 2006" als unformatierten Text eingeben.

Alles klar? Und so sieht der Befehl aus:

Write-Host "Data for " -nonewline; Write-Host "atl-ws-01" -foregroundcolor red -backgroundcolor yellow -nonewline; Write-Host " retrieved May 12, 2006"

Und so sieht die entsprechende Ausgabe im Konsolenfenster aus:

Windows PowerShell