PowerShell读取CSV并遍历数组的流程步骤
<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li><a href="#_label0">步骤说明:</a></li><li><a href="#_label1">关键参数说明:</a></li><li><a href="#_label2">示例 CSV 文件内容:</a></li><ul class="second_class_ul"><li><a href="#_lab2_2_0"> 执行结果:</a></li><li><a href="#_lab2_2_1">空值处理:</a></li><li><a href="#_lab2_2_2">去重处理:</a></li></ul><li><a href="#_label3">终极练习:排序加去重</a></li><ul class="second_class_ul"></ul></ul></div><p>在 PowerShell 中,从 CSV 文件获取 Group 列的数据并遍历输出,可以按照以下步骤操作:</p><p class="maodian"><a name="_label0"></a></p><h2>步骤说明:</h2>
<ul><li>读取 CSV 文件:使用 Import-Csv 命令加载 CSV 数据。</li><li>提取 Group 数组:通过管道操作 | Select-Object -ExpandProperty Group 提取指定列的值。</li><li>遍历数组:使用 foreach 循环或 ForEach-Object 遍历每个元素并输出。</li></ul>
<div class="jb51code"><pre class="brush:ps;"># 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/</pre></div>
<p class="maodian"><a name="_label1"></a></p><h2>关键参数说明:</h2>
<table><thead><tr><th>参数/命令</th><th>作用</th></tr></thead><tbody><tr><td><code>Import-Csv -Path</code></td><td>加载 CSV 文件(路径需替换为实际文件路径)</td></tr><tr><td><code>Select-Object -ExpandProperty Group</code></td><td>提取名为 <code>Group</code> 的列,直接返回其值数组(而非对象)</td></tr><tr><td><code>foreach</code></td><td>循环遍历数组中的每个元素</td></tr><tr><td><code>$($_.Group)</code></td><td>在管道中访问当前对象的 <code>Group</code> 属性(<code>$_</code> 表示当前对象)</td></tr></tbody></table>
<p class="maodian"><a name="_label2"></a></p><h2>示例 CSV 文件内容:</h2>
<p>(假设文件名为 <code>groups.csv</code>):</p>
<div class="jb51code"><pre class="brush:plain;">Name,Group
Alice,Admin
Bob,Developer
Charlie,Admin
Diana,Manager</pre></div>
<p class="maodian"><a name="_lab2_2_0"></a></p><h3> 执行结果:</h3>
<div class="jb51code"><pre class="brush:plain;">当前组: Admin
当前组: Developer
当前组: Admin
当前组: Manager</pre></div>
<p class="maodian"><a name="_lab2_2_1"></a></p><h3>空值处理:</h3>
<p>如果 CSV 中存在空值,遍历时会输出空行。可通过条件过滤:</p>
<div class="jb51code"><pre class="brush:ps;">$groups | Where-Object { $_ } | ForEach-Object { Write-Output "组: $_" }</pre></div>
<p class="maodian"><a name="_lab2_2_2"></a></p><h3>去重处理:</h3>
<div class="jb51code"><pre class="brush:ps;">$uniqueGroups = Import-Csv groups.csv | Select-Object -ExpandProperty Group | Sort-Object -Unique</pre></div>
<p class="maodian"><a name="_label3"></a></p><h2>终极练习:排序加去重</h2>
<div class="jb51code"><pre class="brush:ps;">$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/</pre></div>
<p style="text-align:center"><img alt="" src="https://img.jbzj.com/file_images/article/202511/2025115100227699.png" /></p>
頁:
[1]