コマンドレットのパラメータを列挙してみる。|Tweetまた続くかどうか不明の新シリーズ。今日書いたワンライナーを記録していきます。今回は、配列に含まれる要素のうち、もっとも出現頻度の多いものを調べる方法です。2という配列がある場合、「0」は6個含まれており最も要素数が多いので、この場合「0」を出力します。ワンライナーは以下のようになります。Name今回のケースのように、「配列内に同一の要素が含まれており、要素ごとに纏める」という手順が必要なときはGroup-Objectコマンドレット(エイリアス:group)の出番です。2}のような出力が得られます。この出力だけでお題の解答である「0」が確認できます。あとはこの出力から求める値を抽出するだけです。Group-Objectコマンドレットの出力はGroupInfoというオブジェクトです。これもオブジェクトなので、他のオブジェクト同様、プロパティ情報を保ったまま後続パイプラインに渡すことができます。Sort-Objectコマンドレット(エイリアス:sort)を用いてGroupInfoのCountプロパティの値で降順ソート(-Descendingパラメータ使用)をかけます。するとCountプロパティが一番大きいGroupInfoオブジェクトが一番最初の要素となります。1と指定することで一番最初のGroupInfoオブジェクトのみ取得します。-ExpandPropertyパラメータを指定します。ところでGroupInfoオブジェクトのGroupプロパティ、どうせNameと同じものがCount分列挙されるだけじゃないか何の意味が?と思われるかも知れないので補足です。Group-Objectコマンドレットには-Propertyパラメータ(位置パラメータなのでパラメータ名は省略可能)が定義されており、指定すると任意のプロパティ値に基づいてグループ化してくれます。Extensionとすると、カレントディレクトリに含まれるファイルが拡張子別にグループ化され、以下のような出力が得られます。cmdlets.ps1...}このようにGroupプロパティの中身は、指定プロパティ値を持つ要素のグループとなっていることが分かると思います。8...}みたいなこともできたりします。-NoElementパラメータを付与すると出力を抑制できます。(この場合、出力はGroupInfoオブジェクトではなく、GroupInfoNoElementオブジェクトとなる)なんか後半はGroup-Objectコマンドレット特集みたくなってしまいました。@mutaguchiBooks書籍版。