2008年09月26日

PowerShell を試してみる

スタートメニューにワードファイル(rtfファイル)のマニュアル(GettingStarted.rtf)が入っているのでそれを試す。

get-service | get-member


と入力。
おー良く分からんがデロデロ出てきた。

PowerShell最初のコマンド

なんでも「Get-Service」は「ローカルコンピュータ上のサービスを取得」するコマンドレット。
「Get-Member」は「オブジェクトまたはオブジェクトのコレクションに関する情報を取得」するコマンドレット。

PowerShell ではコマンドではなくコマンドレットという。また「Service」を「Get」するので「Get-Service」というように、専用のコマンドは「動詞-目的語」の形になっている。そしてそれらの結果を「|」パイプで繋ぐことができる。

で、「それらの結果」というのはオブジェクトになっているらしい。それは後で検証。

コマンドの意味はヘルプで確認できる。「Get-Help」「help」「man」のどれでもいい。Get-help は一画面で収まる縮小版、help や man は詳細情報が表示される(man は UNIX 風に入力できるように help コマンドのエイリアスになっている)。

Windows らしく、大文字小文字は区別されない。

そしていきなりつまづく


つぎにマニュアルに書いてある

ipconfig | findstr "Address"


を試してみる。ipconfig の結果から「Address」という文字列の有る行だけ表示するらしい。

……???何も表示されない。

マニュアルだと

PowerShellマニュアルの動作結果

のようになるはずなのに。しばらく悩む。試しに「ipconfig」とだけ打ってみる。

PowerShellマニュアルの動作結果02

あーなるほど。「Address」じゃなくて「アドレス」でした。Widows XP の ipconfig の結果は「IP Address」という表記ですが、Windows Vista では「IPv4 アドレス」のようにカタカナになっていたのでした。

じゃあそこを直せばできるはずなのでやってみる。

ipconfig | findstr "アドレス"


……何もでない。なんで??
もしや!と思って、

ipconfig | findstr "IP"


としてみる。

PowerShellマニュアルの動作結果03

日本語が化けまくっている。うーん。なぞです。PowerShell では文字コードが utf-8 だか utf-16 だかになるとどこかに書いてあったことと関係するのかも。

取りあえず置いておくことにする。

ところで、ipconfig も findstr も Windows のコマンドであって、PowerShell のコマンドレットではない。パスが通っていれば使えるらしいけど、「Get-help ipconfig」などとやっても

トピック "ipconfig" のヘルプが見つかりません。


というメッセージが出るだけで表示されない。

PowerShellヘルプ無し

help コマンドも Get-help コマンドレットのエイリアスだから結果は同様。もっとも cd は DOSコマンドの cd ではなく、「Set-Location」のエイリアスなので「Get-Help cd」と打ってもちゃんと表示される。この辺がややこしい。
posted by n_shimizu at 18:30| Comment(0) | TrackBack(0) | PowerShell
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
この記事へのトラックバックURL
http://blog.sakura.ne.jp/tb/20066913
※言及リンクのないトラックバックは受信されません。

この記事へのトラックバック