PowerShell读取CSV并遍历组数组
在 PowerShell 中,从 CSV 文件获取 Group
列的数据并遍历输出,可以按照以下步骤操作:
步骤说明:
-
读取 CSV 文件:使用
Import-Csv
命令加载 CSV 数据。 -
提取 Group 数组:通过管道操作
| Select-Object -ExpandProperty Group
提取指定列的值。 -
遍历数组:使用
foreach
循环或ForEach-Object
遍历每个元素并输出。
# 1.1 读取CSV文件并提取Group列的值到数组
$groups = Import-Csv -Path "你的文件路径.csv" | Select-Object -ExpandProperty Group# 1.2 遍历数组并输出所有元素
foreach ($group in $groups) {Write-Output "当前组: $group"
}# 2.1 或者使用管道简洁写法(效果相同):
Import-Csv "你的文件路径.csv" | ForEach-Object { Write-Output "当前组: $($_.Group)"
}# powered by https://zhengkai.blog.csdn.net/
关键参数说明:
参数/命令 | 作用 |
---|---|
Import-Csv -Path | 加载 CSV 文件(路径需替换为实际文件路径) |
Select-Object -ExpandProperty Group | 提取名为 Group 的列,直接返回其值数组(而非对象) |
foreach | 循环遍历数组中的每个元素 |
$($_.Group) | 在管道中访问当前对象的 Group 属性($_ 表示当前对象) |
示例 CSV 文件内容:
(假设文件名为 groups.csv
):
Name,Group
Alice,Admin
Bob,Developer
Charlie,Admin
Diana,Manager
执行结果:
当前组: Admin
当前组: Developer
当前组: Admin
当前组: Manager
空值处理:
如果 CSV 中存在空值,遍历时会输出空行。可通过条件过滤:
$groups | Where-Object { $_ } | ForEach-Object { Write-Output "组: $_" }
去重处理:
$uniqueGroups = Import-Csv groups.csv | Select-Object -ExpandProperty Group | Sort-Object -Unique
终极练习:排序加去重
$uniqueGroups = Import-Csv "D:\Workspace\Data\powershell\group.csv" | Select-Object -ExpandProperty Group | Sort-Object -Unique# 1.2 遍历数组并输出所有元素
foreach ($group in $uniqueGroups) {Write-Output "当前组: $group"
}# powered by https://zhengkai.blog.csdn.net/