9

コードが生成する出力の列の順序を変更するにはどうすればよいですか:

$apps = Import-CSV apps.csv
$computers = Import-CSV compobj.csv
foreach ($computer in $computers) {    
    $computerLob = $computer.lob
    $lobApps = $apps | ? {$_.lob -eq $computerLob }
    foreach ($app in $lobApps) {
        $computerHostname = $computer.hostname
        $appLocation = $app.location
        $installed=Test-Path "\\$computerHostname\$appLocation"      
        New-Object PSObject -Property @{
            Computer=$computer.hostname
            App=$app.appname
            Installed=$installed
        }
    }

現在、次の順序で列を生成しています: Installed,App,Computer.

以下の順番でお願いしたいですComputer,App,Installed

4

5 に答える 5

18

Powershell V3 では、順序付けられたハッシュ テーブルを使用してオブジェクトを作成する [PSCustomObject] の型アクセラレータが追加されたため、プロパティは宣言された順序のままになります。

[PSCustomObject] @{
  Computer=$computer.hostname
  App=$app.appname
  Installed=$installed
}
于 2013-10-27T23:48:31.477 に答える
5

Format-Tableこれは、オブジェクト フィールドを特定の順序で表示する必要がある場合に適したソリューションですが、オブジェクトが変更され、csv ( Export-Csv) にエクスポートする場合など、オブジェクトをパイプできなくなります。

「オブジェクト内のフィールドの順序」を変更したいだけの場合は、 を使用しますSelect-Object。これにより、オブジェクトの種類とフィールドが保持されますが、オブジェクトを他のコマンドレットにパイプすることができます。

于 2014-07-31T07:26:38.220 に答える