[英]Powershell: Array vs Hashtable (or both) not sure how to proceed
我有以下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上匹配的其他字段
這可行。
但是,我不確定如何添加第二個字段來檢查( “ Zone” ,以縮小發送到第3個輸出文件的結果的范圍。兩個文件都具有zone字段。
我對此有所了解,並且數組似乎更適合於多個條件,而不是哈希表,但是我運氣不高。
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
任何幫助表示贊賞。
謝謝!
您只需在結果文件上使用WHERE-OBJECT即可拉出您感興趣的區域:
Import-CSV c:\HQ_TPR_sales.csv | WHERE-OBJECT {$_.Zone -eq 2}
或者在導出csv之前將WHERE-OBJECT放入管道中:
... | ? {$_.Zone -eq 2} | Export-CSV ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.