2

Compare-Object コマンドレットを使用して比較したい 2 つの System.Data.DataSet オブジェクトがあります。元のデータセットの列を含むデータセットを出力したいと考えていますが、相違点と、Compare-Object コマンドレットで計算された SideIndicator 値を含む追加の列のみを含みます。

次の 2 つの CSV があるとします。

#C:\test.csv
"firstName","lastName"
"Bruce","Wayne"
"Clark","Kent"

#C:\test2.csv
"firstName","lastName"
"Peter","Parker"
"Clark","Kent"
"Jean","Grey"

次の結果を使用したいと思います。

compare-object (Get-Content C:\test.csv) (Get-Content C:\test2.csv)

次のようにフォーマットされたデータセットに入力します。

#desiredResult
"firstName","lastName","SideIndicator"
"Peter","Parker","=>"
"Jean","Grey","=>"
"Bruce","Wayne","<="

ありがとう、ザック

4

1 に答える 1

3

これにより$output、探している値が得られるはずです。

$output = Compare-Object $(Import-Csv c:\test.csv) $(Import-Csv c:\test2.csv) -Property FirstName, Lastname

ファイルを使用するGet-Contentと、各行が配列のオブジェクトとして配置されます。これは、firstnameandlastnameを両方の配列に存在する単一の行として扱います。compare-objectしたがって、両方にあるため、 では返されません。

使用するImport-Csvと、最初の行をヘッダーとして受け取り、それらを配列のプロパティにします。その後の各行は、 内の位置に基づいてプロパティに追加されます.csv。これは、compare-objectそれらを異なる配列と比較し、プロパティを出力に維持できることを意味します。

于 2012-09-19T16:19:24.427 に答える