I Love PowerShell
{}を省略出来るようになったらしい。
それに伴って、プロパテイ参照時の$_も不要になっている。
ただし、Foreach-Objectはプロパティ表示以外の使い方が出来るのかどうかはよく判らなかった。
フィルターはすっきりして良い感じだ。
V3の記事が始まりましたね。興味深く拝見させていただいてます。ForEach-Objectですが、Get-Helpで構文を見ると、ForEach-Object [-MemberName] [-InputObject ] [-ArgumentList ] [-WhatIf] [-Confirm] []となっています。-MemberNameであり-PropertyNameではなく、-ArgumentListというパラメータもあるのでメソッドもいけるのでは?と思い、やってみました。結果、PS C:\> 1,2,3|% tostring 00#001002003みたいな感じでいけました。このように、簡略表記と言われていますが、実際は単にコマンドレットの構文が追加されただけだったりしますWhere-Objectの構文拡張はなかなか力技で、最初見た時は、うっ、となりました^^;ぜひGet-Helpで構文見てみてください。
あ、<>がタグと見なされて削られてしまいました。
いつもありがとうございます。ん、どうも更新の仕方が悪かったのか私の環境のHELPではこれまでどおりのSyntaxで表示されてしまいます。でも確かにISEのインテリセンスやタブ補完ではMemberNameとかも表示されますね。ScriptBlock表現の簡略化ではなく、新たなパラメーターでの実装であれば今回の動作は納得です。% name + "suffix"とかやってエラーになって悩んでいました。
ver.3には現在のところヘルプファイルが存在しないので、Get-Helpでコマンドレットを調べると、そのシンタックスはアセンブリの属性情報を元に表示されます。しかしver.2環境にver.3を上書きだと、ver.2のヘルプファイルがそのまま使われるのかもしれませんね。私はWindows Server 8 DP上のPSv3を評価しているので、新しいシンタックスを表示できるようです。
V3の記事が始まりましたね。
返信削除興味深く拝見させていただいてます。
ForEach-Objectですが、Get-Helpで構文を見ると、
ForEach-Object [-MemberName] [-InputObject ] [-ArgumentList ] [-WhatIf] [-Confirm] []
となっています。-MemberNameであり-PropertyNameではなく、-ArgumentListというパラメータもあるのでメソッドもいけるのでは?と思い、やってみました。
結果、
PS C:\> 1,2,3|% tostring 00#
001
002
003
みたいな感じでいけました。
このように、簡略表記と言われていますが、実際は単にコマンドレットの構文が追加されただけだったりします
Where-Objectの構文拡張はなかなか力技で、最初見た時は、うっ、となりました^^;
ぜひGet-Helpで構文見てみてください。
あ、<>がタグと見なされて削られてしまいました。
返信削除いつもありがとうございます。
返信削除ん、どうも更新の仕方が悪かったのか私の環境のHELPではこれまでどおりのSyntaxで表示されてしまいます。
でも確かにISEのインテリセンスやタブ補完ではMemberNameとかも表示されますね。
ScriptBlock表現の簡略化ではなく、新たなパラメーターでの実装であれば今回の動作は納得です。
% name + "suffix"
とかやってエラーになって悩んでいました。
ver.3には現在のところヘルプファイルが存在しないので、Get-Helpでコマンドレットを調べると、そのシンタックスはアセンブリの属性情報を元に表示されます。
返信削除しかしver.2環境にver.3を上書きだと、ver.2のヘルプファイルがそのまま使われるのかもしれませんね。私はWindows Server 8 DP上のPSv3を評価しているので、新しいシンタックスを表示できるようです。