none
取得したオブジェクトにオートナンバーキー列を付与するについて

    質問

  • コマンドレットにて取得したオブジェクトについて、各行毎にオートナンバー型の列を追加した上で出力したいと考えております。

    例えば、以下のようなコマンドにてプロセスIDとプロセスを取得し、プロセスID毎にソートしたとします。

    Get-Process | sort-object id | select-Object id,name
    <結果>
    Id ProcessName
    -------------------------------------
    0 Idle
    4 system
    12 svhost
    245 svhost
    12055 java
    11223 java




    これに、順位を示す列を加えるような処理を考えております
    <求めたい結果>
    Number Id ProcessName
    -------------------------------------
    1 0 Idle
    2 4 system
    3 12 svhost
    4 245 svhost
    5 12055 java
    6 11223 java





    PowerShellスクリプト内で変数等を用いて試したのですが、うまくいきませんでした。

    もし、うまいやり方等がありましたらご教授いただけると幸いです。

    宜しくお願いいたします。

    2013年11月26日 13:25

回答

  • こんにちは、

    普通にやるとこんな感じですかね。

    ps | sort id | select Number,id,name | %{$i=1}{$_.Number = $i++;$_} | ft * -auto

    もう少しスマートな方法が有りそうにも思うのですが、とりあえず。
    2013年11月27日 1:26

すべての返信

  • こんにちは、

    普通にやるとこんな感じですかね。

    ps | sort id | select Number,id,name | %{$i=1}{$_.Number = $i++;$_} | ft * -auto

    もう少しスマートな方法が有りそうにも思うのですが、とりあえず。
    2013年11月27日 1:26
  • ありがとうございました。やりたいことは十分達成できました。
    2013年11月27日 6:12