【发布时间】:2016-08-03 06:08:06
【问题描述】:
给定两个 csv 文件:
文件 1.csv SKU,描述,UPC 101,锯,101010103 102,钻头,101010102 103,螺丝,101010101 104、美甲、101010104 文件2.csv SKU,描述,UPC 100,光,101010105 101,锯,101010103 104、美甲、101010104 106,电池,101010106 108,桶,101010114我想创建一个新的 csv 文件,我们将调用 UpdatedList.csv,其中包含 File1.csv 中的每个条目减去 SKU 在 File1.csv 和 File2.csv 中的任何行。在这种情况下,UpdatedList.csv 看起来像
更新列表.csv "SKU","描述","UPC" "102","钻头","101010102" "103","螺丝","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"
################################
【问题讨论】:
标签: csv powershell