PowerShell按组归类服务器列表输出问题求助
按分组归类服务器列表的PowerShell实现
解决方案
要实现分组名仅显示一次、下方列出对应所有服务器的效果,核心是先对CSV数据按分组字段聚合,再遍历输出,替代原代码逐行输出分组名的方式:
# 导入CSV并按Group字段分组 $groupedServers = Import-CSV c:\dev.csv | Group-Object -Property Group # 生成目标格式的输出内容 $outputContent = foreach ($group in $groupedServers) { # 输出分组名称 $group.Name # 输出该分组下的所有服务器名称 $group.Group | ForEach-Object { $_.Name } # 可选:分组间添加空行分隔,提升可读性 "" } # 将结果写入目标文件 $outputContent | Out-File c:\dev.ini -Encoding utf8
代码说明
Group-Object -Property Group:将CSV中的服务器数据按Group字段聚合,每个分组对象包含组名和该组下的全部服务器条目,从根源避免分组名重复。- 遍历分组输出:先输出分组名,再遍历组内的服务器条目提取名称,确保每组仅显示一次分组名。
Out-File替代重定向:可指定编码(如utf8)避免文件乱码问题,比直接用>更可靠。
若不需要分组间的空行,删除代码中的""即可。
内容的提问来源于stack exchange,提问作者Gubment Cheese
相关产品推荐
相关产品推荐

