CSVファイル(ヘッダー付き)に品揃えデータが格納されています。ファイルは毎日更新されます。私はそれらのファイル(古いものと新しいもの)の違いを見つけて、それらを別々のファイルに抽出する必要があります。CSVファイルの差分を別々のファイルに抽出する
たとえば、古いファイルでは「18,50」の価格があり、現在は「17,90」の更新されたものです。スクリプトはこの行を新しいファイルに抽出するはずです。
これまでのところ、両方のCSVファイルを(Import-Csv
経由で)インポートできましたが、私の現在の解決策は各行をfindstr
で比較することです。
問題は、次のとおりです。
- 9 10の例では、文字列は、比較するには長すぎます。
- 新しい行が挿入される場合はどうなりますか?ファイルの最後に行が挿入されていない場合、比較はもう機能しません。
私の現在のコードは次のとおりです。
foreach ($oldData in (Import-Csv $PSScriptRoot\old.csv -Delimiter ";" -Encoding "default")) {
foreach ($newData in (Import-Csv $PSScriptRoot\new.csv -Delimiter ";" -Encoding "default")) {
findstr.exe /v /c:$oldData $newData > $PSScriptRoot\diff.txt
}
}
あなたが試したことを示してください。 – ArcSet
そしていくつかのサンプルデータ。すなわち、識別カラム(製品番号など)はありますか? –
はい固有の製品IDである「idArtikel」と呼ばれる識別カラム – Razorfen