ZetCode

PowerShell CSV

最后修改:2025 年 2 月 15 日

在本文中,我们将介绍如何使用PowerShell读取和写入CSV文件。

在本文中,我们将介绍如何使用PowerShell读取和写入CSV文件。处理CSV文件是IT专业人员和系统管理员的一项常见任务,因为CSV文件广泛用于数据交换和存储。PowerShell提供了一种直接有效的方法来处理CSV文件,让您可以轻松地导入、操作和导出数据。

Import-Csv cmdlet将CSV文件的内容转换为PowerShell对象,从而方便在脚本中使用这些数据。您可以根据需要筛选、排序和修改数据,然后将结果导出到新的CSV文件或执行其他操作。

Export-Csv cmdlet接受PowerShell对象并将其转换为CSV格式,然后可以将其保存到文件中。这对于生成报告、从脚本导出数据以及与其他系统或应用程序共享信息非常有用。

读取CSV文件

PowerShell可以使用Import-Csv cmdlet读取CSV文件。

fruits.csv
name
apple
banana
cherry

我们在fruits.csv中有这些测试数据。

read_csv.ps1
$fruits = Import-Csv -Path "fruits.csv"
Write-Output "The first fruit is $($fruits[0].name)"

在此程序中,我们读取一个名为fruits.csv的CSV文件。然后,我们使用Write-Output cmdlet打印CSV文件中的第一个水果的名称。

$fruits = Import-Csv -Path "fruits.csv"

我们使用Import-Csv cmdlet读取CSV文件。

Write-Output "The first fruit is $($fruits[0].name)"

我们使用Write-Output cmdlet打印第一个水果的名称。我们使用索引运算符[]访问数组中的第一个元素,并使用点表示法访问水果对象的name属性。

PS C:\> .\read_csv.ps1
The first fruit is apple

我们运行脚本并查看输出。

写入CSV文件

PowerShell可以使用Export-Csv cmdlet写入CSV文件。

write_csv.ps1
$fruits = @("apple", "banana", "cherry")
$fruits |
    ForEach-Object {
        [PSCustomObject]@{
            name = $_
        }
    } |
    Export-Csv -Path "fruits.csv" -NoTypeInformation

在此程序中,我们创建一个水果数组,并将其写入名为fruits.csv的CSV文件中。

$fruits = @("apple", "banana", "cherry")

我们创建一个水果数组。

$fruits |
    ForEach-Object {
        [PSCustomObject]@{
            name = $_
        }
    } |
    Export-Csv -Path "fruits.csv" -NoTypeInformation

我们使用管道运算符|$fruits数组发送到ForEach-Object cmdlet。我们使用ForEach-Object cmdlet遍历数组,为每个水果创建一个自定义对象。然后,我们使用Export-Csv cmdlet将自定义对象写入CSV文件。

PS C:\> Import-Csv -Path "fruits.csv"

name
----
apple
banana
cherry

我们运行脚本并查看输出。

CSV文件操作

我们可以使用PowerShell丰富的cmdlet来操作CSV文件。

manipulate_csv.ps1
$fruits = Import-Csv -Path "fruits.csv"

$newFruit = [PSCustomObject]@{
    name = "orange"
}

$fruits += $newFruit
$fruits |
    Sort-Object name |
    Select-Object name -First 3 |
    Export-Csv -Path "fruits.csv" -NoTypeInformation

在此程序中,我们读取CSV文件,添加一个新水果,按名称对水果进行排序,并将前三个水果写入CSV文件。

$fruits = Import-Csv -Path "fruits.csv"

我们使用Import-Csv cmdlet读取CSV文件。

$newFruit = [PSCustomObject]@{
    name = "orange"
}

$fruits += $newFruit

我们使用PSCustomObject cmdlet创建一个新的水果对象。然后,我们将新的水果对象添加到$fruits数组中。

$fruits |
    Sort-Object name |
    Select-Object name -First 3 |
    Export-Csv -Path "fruits.csv" -NoTypeInformation

我们使用管道运算符|$fruits数组发送到Sort-Object cmdlet。我们按name属性对数组进行排序。然后,我们使用Select-Object cmdlet选择前三个水果,并使用Export-Csv cmdlet将它们写入CSV文件。

PS C:\> Import-Csv -Path "fruits.csv"

name
----
apple
banana
cherry
orange

我们运行脚本并查看输出。

来源

PowerShell 文档

在本文中,我们已经学习了如何在PowerShell中读取和写入CSV文件。

作者

我的名字是Jan Bodnar,我是一名充满热情的程序员,拥有丰富的编程经验。我从2007年开始撰写编程文章。迄今为止,我已撰写了1400多篇文章和8本电子书。我在编程教学方面拥有超过十年的经验。

列出 所有 PowerShell 教程