TechEd 見てますか?私はしんでました。見てません。
ということで、後から見たい人向けに!
Channel 9 : TechED 2014 - Windows PowerShell Unplugged with Jeffrey Snover
Unplugged は、 Snover 自身がPowerShell をこう使おうぜ!という内容を実演するものです。
そういえば紹介してたのは、、私も良く使うのですが記事に出してなかったので少し例を。
目次
- 目次
- OutVariable パラメータ
- -ParameterTypeを使って、Get-Command の結果を型タイプで絞る
- Snippet を使おう
- PowerShell ISE の Commands タブ
- PipelineVariables
- まとめ
OutVariable パラメータ
PowerShell V5 Preview でOneGet がありますが、パッケージ全体を見つつ再利用したいと思った時どうしますか?
Filter を自作する?そんなことは必要ありません。こうするだけです。
Find-Package -OutVariable a
OutVariableパラメータに変数名を指定すると、実行結果をホストに出力しつつもその内容を変数a に格納します。
$a = Find-Package
が、ホスト出力を出さずに丸ごと $a に格納してしまうのと違い、Tee に近い動作です。
-ParameterTypeを使って、Get-Command の結果を型タイプで絞る
PowerShell が OO じゃないよねー。とか言うのは、まぁ別の記事にしますが、型を扱えるなら扱える例を。
ということで、 Get-Command でCmdlet を探す時に、扱う型で絞れることもできます。正直やったことある人は数少ないのではないでしょうか。
例えば、System.Diagnostics.Process
型を扱うものを探すなら。
Get-Command -ParameterType System.Diagnostics.Process
CommandType Name Source ----------- ---- ------ Cmdlet Debug-Process Microsoft.PowerShell.Management Cmdlet Get-Process Microsoft.PowerShell.Management Cmdlet Stop-Process Microsoft.PowerShell.Management Cmdlet Wait-Process Microsoft.PowerShell.Management
Snippet を使おう
PowerShell ISE で、Ctrl + J
でスニペットを呼び出せます。
function を 0から書くときに、あるいは独自のスニペットを作って便利に。どうぞ。
PowerShell ISE の Commands タブ
PowerShell の cmdlet がワカラナイ?ワカラナクていいのです。PowerShell ISE では、 GUI からヒントを与えて、実行までできます。
help で、Cmdlet を検索して、Get-Help をマウスでくり! Detail View の Name に探したいコマンドの get-proces を入れて、 Detailed にチェックをいれて 実行。
PipelineVariables
PowerShell V4 からは、自動変数 $_ を任意の名前に、かつパイプラインを貫通して利用できます。
たとえば、こう。
Get-Command -PipelineVariable gc | %{gc.Name}
これで、自動変数 $_ の代わりに $gc が使えます。
Get-Command | %{$_.Name}
また、自動変数の最大の問題である、そのパイプラインでしか使えない 問題も、 PipelineVariableなら パイプラインを貫通して利用できるので解決します。
このPipeline Variable は、パイプラインの終了時に破棄されるので、次のコマンドに影響しません。
ぜひ、使ってください。
まとめ
Done と Snover の お互いをけん制するTalkは面白いので1回見てみてください。