3

次のように、増加する整数を出力するコマンドレット出力を使用して、新しい列を呼び出しGet-Serviceて割り当てたいとします。ID

ID  Status Name                            DisplayName
--  ------ ----                            -----------
 0 Running AdobeARMservice                 Adobe Acrobat Update Service
 1 Stopped AeLookupSvc                     Application Experience
 2 Stopped ALG                             Application Layer Gateway Service

この列を追加するために今使用しようとしてSelect-Objectいますが、この種の式で変数を反復する方法がよくわかりません。これが私が持っているものです:

Get-Service |
Select-Object @{ Name = "ID" ; Expression= {  } }, Status, Name, DisplayName |
Format-Table -Autosize

内で整数を反復する方法はありますExpression= { }か、またはこの問題を間違った方法で処理していますか?

4

2 に答える 2

9

この方法で実行できますが、メインの式の外でいくつかのカウンター変数を維持する必要があります。

$counter = 0
Get-Service |
Select-Object @{ Name = "ID" ; Expression= {$global:counter; $global:counter++} }, Status, Name, DisplayName |
Format-Table -Autosize

おそらくよりクリーンな別のオプション

Get-Service `
|% {$counter = -1} {$counter++; $_ | Add-Member -Name ID -Value $counter -MemberType NoteProperty -PassThru} `
| Format-Table ID
于 2013-08-07T18:17:17.797 に答える