Write-Host コマンドレットの使用

コンソール ウィンドウにメッセージを出力

Write-Host コマンドレットを使用すると、Windows PowerShell コンソールにメッセージを出力できます。たとえば、コンソール ウィンドウに "This is a message" という文を出力する必要はありますか。この場合、Write-Host に出力するメッセージを続けます。

Write-Host "This is a message"

この処理に問題はありません。コンソール ウィンドウに "This is a message" という文を出力します。ただし、Write-Host を使用してより刺激的なことを実行できるかどうかを見てみましょう。おわかりのように、Write-Host には 2 つのオプション パラメータ -foregroundcolor-backgroundcolor があります。このパラメータを使用して、異なるテキストの色とテキストの背景色を指定できます。たとえば、前景 (テキスト) 色を赤、背景色を黄に設定するコマンドを次に示します。

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

結果のコンソール ウィンドウは次のようになります。

Windows PowerShell

気に入ると思っていましたよ。-foregroundcolor と -backgroundcolor のパラメータに使用できる色です。

  • Black

  • DarkBlue

  • DarkGreen

  • DarkCyan

  • DarkRed

  • DarkMagenta

  • DarkYellow

  • Gray

  • DarkGray

  • Blue

  • Green

  • Cyan

  • Red

  • Magenta

  • Yellow

  • White

通常のテキストと同じ行に異なる色のテキストを表示するという興味深い変種です。まず Write-Host を呼び出し、 "Data for" という文を出力します。ただし、パラメータ -nonewline を付加します。名前が示すように、-nonewline はカーソルを現在の行に配置します。

このようなことは重要でしょうか。重要なのです。既定で、write-Host を呼び出したときはいつでも、末尾に carriage-return の行送りが付加されます。そのため、カーソルはコンソール ウィンドウの次の行に移動します。一方、-nonewline を使用すると、カーソルの位置は変わりません。そのため、Write-Host をもう一度呼び出すことができます (セミコロンを使用して各呼び出しを区切ります)。今度は、コンピュータの名前を出力しますが、黄色い背景に赤いテキストで表示されます。セミコロンを追加し、Write-Host を呼び出します (3 度目)。今回、通常のテキストにある 2006 年 5 月 12 日を取得した文を出力します。

ここまではよろしいでしょうか。この処理を行うコマンドは次のようになります。

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

結果のコンソール ウィンドウは次のようになります。

Windows PowerShell

関連リンク