当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何在 PowerShell 中将 CSV 导入数组?

作者:精品下载站 日期:2024-12-14 05:11:55 浏览:12 分类:玩电脑

如何在 PowerShell 中将 CSV 导入数组?


最近,我需要将 CSV(逗号分隔值)文件中的数据导入到 PowerShell 中的数组中以进行进一步处理。在本教程中,我将通过示例向您展示如何使用不同的方法将 CSV 数据导入到 PowerShell 中的数组中。

要将 CSV 数据导入到 PowerShell 中的数组中,请使用 Import-Csv cmdlet,后跟文件路径,这会从 CSV 文件创建对象数组。例如,$array=Import-Csv -Path ‘file.csv’ 读取 ‘file.csv’ 并将数据存储在 $array 中。 CSV 中的每一行都成为数组中的一个对象,其属性与列标题相对应。

使用 Import-Csv Cmdlet 将 CSV 导入 PowerShell 中的数组

CSV 文件是纯文本文件,其中包含以逗号分隔的数据。 CSV 文件中的每一行通常代表一条数据记录,每条记录由一个或多个以逗号分隔的字段组成。 CSV 文件广泛用于数据交换,因为许多应用程序都可以轻松创建、读取和处理它们。

在 PowerShell 中将 CSV 导入数组有多种方法。

什么是 Import-Csv Cmdlet

PowerShell 提供了一个名为 Import-Csv 的内置 cmdlet,专门用于读取 CSV 文件并将其转换为对象。根据 Microsoft 文档,Import-Csv cmdlet 从 CSV 文件中的项目创建类似表格的自定义对象,每一列都成为自定义对象的属性。

将 CSV 数据导入 PowerShell 的最简单方法是使用 Import-Csv cmdlet。此 cmdlet 读取 CSV 文件并将其转换为对象数组,其中每个对象代表 CSV 文件中的一行。

这是一个基本示例:

$data = Import-Csv -Path "C:\MyFolder\Users.csv"

在此示例中,$data 是一个数组,其中每个元素都是一个自定义对象,其属性与 CSV 文件中的列标题相对应。

导入 CSV 数据后,您可以使用 ForEach 循环处理每条记录。下面是显示每条记录的示例:

$data = Import-Csv -Path "C:\MyFolder\Users.csv"
foreach ($record in $data) {
    Write-Host "Name: $($record.Name), Email: $($record.Email)"
}

假设 CSV 文件包含名为“姓名”和“电子邮件”的列,此脚本将打印出每条记录的姓名和电子邮件。

现在,在我使用 VS code 执行脚本后,请查看下面屏幕截图中的输出。

[玩转系统] 如何在 PowerShell 中将 CSV 导入数组?

如果您的 CSV 文件不包含标头,您可以使用 -Header 参数指定它们:

$headers = "Name", "Email", "Department"
$data = Import-Csv -Path "C:\MyFolder\Users.csv" -Header $headers

现在,$data 将使用提供的标头来创建对象。

某些 CSV 文件可能使用不同的分隔符,例如分号或制表符。您可以使用 -Delimiter 参数指定分隔符:

$data = Import-Csv -Path "C:\MyFolder\Users.csv" -Delimiter ";"

ArrayList 是一个动态数组,可以根据需要增长或缩小。要将 CSV 数据导入到 ArrayList 中,您可以将 Import-Csv cmdlet 与 ForEach 循环结合使用:

[array]$data = @()
Import-Csv -Path "C:\MyFolder\Users.csv" | ForEach-Object {
    $data += $_
}

此脚本读取 CSV 文件并将每条记录添加到 $data 数组中。

在 PowerShell 中将 CSV 导入数组 - 真实示例

假设您有一个名为 users.csv 的 CSV 文件,其中包含以下内容:

Id,Name,Email
1,John Doe,[email protected]
2,Jane Smith,[email protected]
3,Emily Jones,[email protected]

要练习此操作,您还可以下载 users.csv 文件。

要将此 CSV 导入 PowerShell 中的数组并显示每个用户的详细信息,您可以使用以下脚本:

# Import the CSV file into an array
$usersArray = Import-Csv -Path "C:\MyFolder\users.csv"

# Loop through the array and display user details
foreach ($user in $usersArray) {
    Write-Host "User ID: $($user.Id)"
    Write-Host "Name: $($user.Name)"
    Write-Host "Email: $($user.Email)"
    Write-Host "-------------------"
}

执行上述 PowerShell 脚本后,您将看到下面屏幕截图中的输出。

[玩转系统] 如何在 PowerShell 中将 CSV 导入数组?

User ID: 1
Name: John Doe
Email: [email protected]
-------------------
User ID: 2
Name: Jane Smith
Email: [email protected]
-------------------
User ID: 3
Name: Emily Jones
Email: [email protected]
-------------------

结论

使用 Import-Csv cmdlet 可以轻松将 CSV 数据导入 PowerShell 中的数组。 在此 PowerShell 教程中,我解释了如何使用 Import-Csv Cmdlet将 CSV 导入 PowerShell 中的数组

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯