我使用針對由CSV填充的數組foreach循環。 CSV包含產品名稱行,當前支持狀態以及開始支持時的版本號。有時這些支持版本由於各種原因而逗號分隔。的PowerShell + =上foreach循環是增加重複的實例
當以逗號分隔的版本是在一個行中發現,該行從數組中取出。然後創建一個新行並將其添加到數組中,以找到每個版本。
我遇到的問題是,如果我有一個版本的「7,8,9」我結束了三排所有上市版本9.故障排除腳本表明值被拆分並正確回升,但該陣列似乎正在更新每個值與最新的。例如,第一次通過會使版本7,第二次通過v8的兩個實例,最後一次通過與v9 3次。
如何讓我的+ =運算符不更新現有的行?
foreach ($line in $sheet) { if ($line.'Support Started' -cmatch ",") { $sheet = $sheet -ne $line $line.'Support Started'.Split(",") | ForEach { $subver = $_ $line.'Support Started' = $subver $sheet = $sheet += ($line) } } }
爲了提供更多的信息,如果我使用以下命令:
write-host $line $sheet += $line write-host $line
與7,8,9文件的版本,我得到下面的輸出:
產品1,支持7
產品1,支持,7
產品1,支持,8
產品1,支持,8
產品1,支持,9
產品1,支持,9
當檢查$表的價值,我得到:
產品1,支持,9
產品1,支持,9
產品1,支持,9
你能舉一個你的輸入的例子,你到底想做什麼? – Bill
輸入是按以下格式: '「產品」,「狀態」,「支持開始」 「產品1」,「支持」,「7,8,9」' 然後我使用get-內容放在數組中,然後是foreach循環。我想在循環之後進行以下操作: '「product」,「status」,「support started」 「Product1」,「supported」,「7」 「Product1」,「supported」,「8」 「Product1 「,」支持「,」9「 我對此評論的格式表示歉意。我已經編輯了大約30次,但換行符仍然不起作用。 – Steve
將其編輯到您的文章中。將它置於註釋中會破壞格式。 – alroc