你可以把原来的输入字符串到数组与-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