Windows PowerShellをさわってみる その2
対話型シェルで作業をしているとコマンドレットに割り当てられているエイリアスを調べる事がよくある。そんな時にはGet-AliasコマンドとWhere-Objectコマンドで問い合わせる。
Get-Alias | Where-Object { $_.Definition -like "Get*" }
Get-AliasをパイプでWhere-Objectにつないで、中括弧で囲んだスクリプトブロックに処理を記述する。
$_は特殊変数でこの中にGet-Aliasのオブジェクトが順番に格納される。
これを毎回書くのが結構めんどくさいので、関数にしてみる。
function whereDef([string]$def) { Get-Alias | Where-Object { $_.Definition -like $def } | Format-Table Definition, Name -autosize }
functionで関数の定義ができる。関数名を指定して括弧の中に引数リストを定義する。
変数名の前に型名を記述すると型を指定できる。(型が不正な場合はエラー)
後は同じで、中括弧の中に処理を記述する。Where-Objectの後についでで出力を整形しておく。
これをマイドキュメントのWindowsPowerShell\profile.ps1スクリプトに記述しておく。
これでPowerShell起動時に自動的にこの関数が読み込まれて、使用できるようになる。
使う時はこんな感じ
whereDef Get*
出力
Definition Name ---------- ---- Get-Alias gal Get-Content gc Get-ChildItem gci Get-Command gcm Get-PSDrive gdr Get-History ghy Get-Item gi Get-Location gl Get-Member gm Get-ItemProperty gp Get-Process gps Get-Service gsv Get-PSSnapin gsnp Get-Unique gu Get-Variable gv Get-WmiObject gwmi Get-Content cat Get-History h Get-History histo Get-ChildItem ls Get-Process ps Get-Location pwd Get-ChildItem dir Get-Content type