5

グーグルを実行しましたが、適切な答えが見つかりません

私は持っています

     $a = @(
           @{"name"="a"; "value"="1"},
           @{"name"="b"; "value"="2"}
       )

    Foreach($x in $a){
          $obj = New-object psobject
          Foreach($key in $x.keys) {
                 $obj ¦ add-member -membertype NoteProperty -name $key -value $x[$key]
           }
           $obj ¦ export-cvs test.csv
     }

私はタクシーの最後の行だけを取得します。すべての行が欲しい

4

2 に答える 2

3

Export-Csv が追加されない (< v3) のは事実ですが、ConvertTo-Csv で問題が解決するとは思いません。最終的に、配列内のオブジェクトごとにヘッダーが繰り返されるファイルを取得します。次の 2 つのいずれかをお勧めします。

  • Export-Csv を foreach {} の外に移動します (ただし、デフォルトではパイプできないため、部分式に入れる必要があります)
  • 代わりに Foreach-Object を使用して同じ結果を得る

また、後でメンバーを追加する代わりに、New-Object PSObject -Property パラメーターを使用することをお勧めします。ハッシュテーブルをベースとして使用しているため、途中までです。添付の​​コード サンプルを参照してください。

# Using $( foreach ($x in $a) {} ) | Export-Csv
$(Foreach($x in $a){
    New-object psobject -Property $x
}) | Export-Csv test.csv

# Using $a | Foreach-Object {} | Export-Csv
$a | ForEach-Object { 
    New-Object PSObject -Property $_ 
} | Export-Csv test.csv
于 2012-06-24T13:12:55.627 に答える
0

毎回csvファイルを上書きしています。(export-csvの代わりに)毎回convertTo-CSVを使用して、ファイルに追加してみてください。

于 2012-06-24T01:55:39.510 に答える