你可以把原來的輸入字符串到數組與-split
操作:
$ProjectNames = "Project1,Project2,Project3,Project4" -split ','
$ProjectTypes = "web,batch,web,components" -split ','
然後創建一個空的哈希表包含的類型對項目名稱映射
$ProjectsByType = @{}
最後迭代兩個陣列按類型對項目名稱進行分組:
for($i = 0; $i -lt $ProjectNames.Count; $i++){
if(-not $ProjectsByType.ContainsKey($ProjectTypes[$i])){
# Create key and entry as array if it doesn't already exist
$ProjectsByType[$ProjectTypes[$i]] = @()
}
# Add the project to the appropriate project type key
$ProjectsByType[$ProjectTypes[$i]] += $ProjectNames[$i]
}
$ProjectsByType.Keys |ForEach-Object {
$ProjectsByType[$_] -join ','
}
你也可以創建兩個數組對象,並使用Group-Object
將它們分組:
$Projects = for($i = 0; $i -lt $ProjectNames.Count; $i++){
New-Object psobject -Property @{
Name = $ProjectNames[$i]
Type = $ProjectTypes[$i]
}
}
$Projects |Group-Object -Property Type
這是更有趣的現在,您可以選擇您需要的字符串按項目類型分組如果你想進行項目的進一步處理,如果你只是需要字符串的第一種方法更容易
'($輸入| ConvertFrom-CSV)搜索.PSObject.Properties |組對象值| ForEach-Object {$ _ .Group.Name -join','}' – PetSerAl