我有以下powershell脚本:
$grouped_TPR_Test1=Import-Csv c:\TPR.csv | group UPC -AsHashTable -AsString
Import-Csv c:\HQ.csv | foreach{
$tpr_Sales=($grouped_TPR_Test1."$($_.UPC)" | foreach {$_.TPR_Sales}) -join ","
$_ | Add-Member -MemberType NoteProperty -Name TPR_SALES -Value $tpr_Sales -PassThru
} | Export-Csv -NoTypeInformation c:\HQ_TPR_sales.csv
它找到/匹配文件c:\ TPR.csv中的UPC值,该文件中的值相同。 c:\ HQ.csv并将相应的销售数据输出到第三个文件,该文件包含c:\ HQ.csv中的所有字段以及来自c:\ TPR.csv
的UPC上匹配的其他字段这很有效。
但是,我不确定如何添加第二个字段进行检查(“区域”,以缩小发送到第3个输出文件的结果。两个文件都将区域字段设置为好。
我对此有所了解,并且数组似乎更适合多个条件,而不是散列表,但我没有太多运气。
c:\HQ.csv looks essentially like this:
UPC ZONE column1 column2 column3
1234567890123 3 blah1 blah2 blah3
c:\TPR.csv looks essentially like this:
UPC ZONE sales
1234567890123 3 5.00
1234567890123 2 4.00
3210987654321 2 3.00
感谢任何帮助。
谢谢!
答案 0 :(得分:0)
您只需在生成的文件中使用WHERE-OBJECT即可拉出您感兴趣的区域:
Import-CSV c:\HQ_TPR_sales.csv | WHERE-OBJECT {$_.Zone -eq 2}
或者在导出-csv:
之前将WHERE-OBJECT放入管道... | ? {$_.Zone -eq 2} | Export-CSV ...