PowerShell代码重构:按组依次执行技能移除后再添加对应技能
实现方案
你可以先提取两个列表中所有不重复的组名,再按组依次执行移除、添加操作,实现代码如下:
# 提取两个列表中所有唯一组名,不会遗漏仅需要移除/仅需要添加的组 $allGroups = ($Profiles2Cleanse.Group + $KnownGoodProfileList.Group) | Select-Object -Unique # 按组遍历处理 foreach ($currentGroup in $allGroups) { # 先处理当前组的所有待移除技能 $removeList = $Profiles2Cleanse | Where-Object {$_.Group -eq $currentGroup} foreach ($entry in $removeList) { # 替换为你实际的移除命令 Write-Output "$(Get-Date) - 移除 - $($entry.Group) - $($entry.Skill)" } # 再处理当前组的所有待添加技能 $addList = $KnownGoodProfileList | Where-Object {$_.Group -eq $currentGroup} foreach ($entry in $addList) { # 替换为你实际的添加命令 Write-Output "$(Get-Date) - 添加 - $($entry.Group) - $($entry.Skill)" } }
补充说明
- 如果需要严格按照Group1到Group15的数字顺序处理,可以在获取唯一组时添加排序逻辑:
$allGroups = ($Profiles2Cleanse.Group + $KnownGoodProfileList.Group) | Select-Object -Unique | Sort-Object - 该逻辑兼容某个组只有待移除技能、或只有待添加技能的场景,不会出现遗漏处理的情况
内容的提问来源于stack exchange,提问作者Bubbles2000
相关产品推荐
相关产品推荐

