LoginSignup
1
1

More than 5 years have passed since last update.

Write-Hostに複数の引数を指定できた

Last updated at Posted at 2015-10-25

MSのTechNetにあるWrite-Hostの説明は非常に簡潔で、

  • 表示したいリテラルをひとつ、直接指定する

  • 表示の際に文字色と背景色を指定できる

  • 実行後の改行をキャンセルする"-nonewline"オプションがある

の三つだけが書かれています。

変数だって指定できるしコマンドの実行結果だって指定できる

変数に関しては、まぁ敢えて説明されなくても普通にできると思っちゃうよね。

(*'-') >> $msg="Hello world!"
(*'-') >> Write-Host $msg
Hello world!

じゃあコマンドの実行結果は?

(*'-') >> Write-Host Get-Date
Get-Date

…失敗。てかクォートしなくてもリテラル指定できるのか。

(*'-') >> Write-Host (Get-Date)
2015/10/25 9:42:45

正解はこう。コマンドを丸括弧で括ると実行結果に置き換わってWrite-Hostに渡される。

値も変数も実行結果も一緒くたに指定できた

素数判定のスクリプトを書いてみた。

(*'-') >> ./isPrime.ps1 201510250953
NOT prime.

これを使ってたとえば1から10について素数判定した結果を表示する時。

(*'-') >> foreach ($n in 1..10) { Write-Host $n "is" (./isPrime.ps1 $n)}
1 is Not Applicable.
2 is Prime.
3 is Prime.
4 is NOT prime.
5 is Prime.
6 is NOT prime.
7 is Prime.
8 is NOT prime.
9 is NOT prime.
10 is NOT prime.

このようにWrite-Hostに対して続けざまに引数を与えると、すべて連続して表示してくれる。しかもご丁寧に空白で区切って。

ということに今朝気づいた。

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1