0
考えると2つのCSVファイルから試合を控除:2つのCSVファイルを比較し、元
File1.csv SKU,Description,UPC 101,Saw,101010103 102,Drill,101010102 103,Screw,101010101 104,Nail,101010104 File2.csv SKU,Description,UPC 100,Light,101010105 101,Saw,101010103 104,Nail,101010104 106,Battery,101010106 108,Bucket,101010114私は新しいCSVファイルを作成したい
、我々はファイル1からすべてのエントリを持っているUpdatedList.csvを呼び出します。 csvは、SKUがFile1.csvとFile2.csvの両方にある行を差し引いたものです。この場合、UpdatedList.csvは
のようになりますUpdatedList.csv "SKU","Description","UPC" "102","Drill","101010102" "103","Screw","101010101"
次のコードは私が望むことをしますが、より効率的な方法があると思います。どのように私はループなしでこれを行うことができますか?私のコードは以下の通りです。
#### Create a third file that has all elements of file 1 minus those in file 2 ###
$FileName1 = Get-FileName "C:\LowInventory"
$FileName2 = Get-FileName "C:\LowInventory"
$f1 = ipcsv $FileName1
$f2 = ipcsv $FileName2
$f3 = ipcsv $FileName1
For($i=0; $i -lt $f1.length; $i++){
For($j=0; $j -lt $f2.length; $j++){
if ($f1[$i].SKU -eq $f2[$j].SKU){$f3[$i].SKU = 0}
}
}
$f3 | Where-Object {$_.SKU -ne "0"} | epcsv "C:\LowInventory\UpdatedList.csv" -NoTypeInformation
Invoke-Item "C:\LowInventory\UpdatedList.csv"
################################
あなたはグループ-Objectコマンドレットを利用することによって、ループせずにこれを行うことができます