PowerShellのススメ

CUI(Character-based User Interface)、使ってますか?

WindowsならGUIでしょう、という人も多いかと思いますが、定型動作を繰り返したい場合、GUIは兎角不安定。
そういうとき、力を発揮するのが、CUIです。

WindowsにおけるCUI

WindowsのCUIは、PowerShellが三代目となります。

  スクリプト名 実行環境 備考
初代 バッチスクリプト コマンドプロンプト(cmd.exe) パイプで扱えるのは文字列のみ
二代目 JScript or VBScript WSH(cscript.exe) 厳密にはCUIなし
三代目 PowerShellスクリプト PowerShell(powershell.exe) パイプでオブジェクトを扱える!

この三代目の偉大なところは、.netが利用でき、パイプで渡されるものがオブジェクトである、という点につきます。

PowerShellの種類

PowerShellの実行環境は、最大で4種類あります。
PowerShellとPowerShell_ISEと。それに加え、x64 OSでは、x86で二つとx64で二つの4種類。
PowerShell_ISEは、PowerShellに比べグラフィカルなサポートがあります。
筆者はその手のサポートを必要としていないため、軽くシンプルなPowerShellを好みます。
PowerShell_ISEはPowerShellに比べ初期状態で読み込まれる.netアセンブリが多いです。
このため、PowerShell_ISEでは動くけどPowerShellでは動かないスクリプトが容易に作れますが、Add-Typeすれば解決します。
x64/x86は利用するものに応じて使い分けてください。

PowerShellで最初に覚えるべきこと

「help」
helpが偉大なのです。(Windows7標準のPowerShell 2.0の場合。他は後述)
何か「なんだっけ?」と思ったらとりあえず「help」と入れましょう。
そして読めば、ヒントがあるのです。

例えば、PowerShellのコマンドを忘れたとき。

コマンドは、「動詞」-「名詞」の形になっています。
また、TAB補完がきくため、最初の文字を覚えていれば、TAB補完でなんとかなることが多いですが、それすら覚えていない場合は、helpの登場です。
「動詞」なんだっけ? なら、「help 動詞」です。
いくつか候補が出てくるので選択する必要がありますが、それらしいのは、、、「Get-Command」ですよね。
で、「Get-Command」と入力すれば、コマンド一覧が取得できます。

え?コマンド一覧の文字が切れているって?

出力をなんとかしたいのですね。「help 出力」、、、。
いろいろ出てきますが、丹念に読めば、、、「Out-GridView」にたどり着ける、、、。
で、「Get-Command | Out-GridView」です。
これで出てくるグリッドウインドウはフィルターがかけられて便利です。

「Out-GridView」っていちいち入力するのダルいんですけど。

別名で処理したいのですね。「help 別名」。そうそう、Aliasです。
じゃ、とりあえず今ある別名を見てみましょう。「Get-Alias | Out-GridView」
、、、なんだ、「Out-GridView」には「ogv」という別名があるのか。

そう、「help」で解決するのです。

PowerShell 3.0以降の場合

筆者はまだWindows10のPowerShell 5.0に触れていないため、5.0でヘルプがどうなったか知りません。
が、PowerShell 3.0および4.0の日本語ヘルプがないことはいえます。
そう、ないのです。
前述の「help」で日本語を使うことはできません。
英語が堪能な人なら問題ないでしょうが、、、。
Update-Helpしても解決しません。

当座の逃げ方

ヘルプは、PowerShell.exeがあるフォルダーの「ja-JP」サブフォルダー内に存在します。
なので、当面はどこからかPowerShell 2.0のヘルプを持ってくることでしのぎます。
ただ、そうした場合、同名コマンドの新しいパラメーターがわからなくなりますが、、、。

PowerShellのすすめとしては、ここまで。
とりあえず触ってみるのがお勧めです。