在PowerShell中读取CSV文件
我正在尝试使用PowerShell读取.csv文件 我正在使用的文件如下所示: 我在互联网上搜索了一些使用PowerShell读取.csv文件的方法,我发现了一个非常简单和清晰的方法:在PowerShell中读取CSV文件,powershell,csv,Powershell,Csv,我正在尝试使用PowerShell读取.csv文件 我正在使用的文件如下所示: 我在互联网上搜索了一些使用PowerShell读取.csv文件的方法,我发现了一个非常简单和清晰的方法: $csvfile = Import-CSV -Path "$ScriptDir\SpecificApp.csv" Foreach ($el in $csvfile) { Write-Host $el.Email } 问题是它没有显示任何内容,当我尝试使用Write Host$el更改行Write Ho
$csvfile = Import-CSV -Path "$ScriptDir\SpecificApp.csv"
Foreach ($el in $csvfile) {
Write-Host $el.Email
}
问题是它没有显示任何内容,当我尝试使用Write Host$el
更改行Write Host$el.Email
时,我得到以下结果:
@{Application;Email=ApplicationName 1;random@address.com}
@{Application;Email=ApplicationName 2;another@email.com}
我知道我可以使用一些
.split()
检索数据,但我想了解如何正常获取这些数据这种情况发生,因为您使用分号代码>作为字段分隔符。默认情况下,需要逗号,
。因此,只有一列名为Application;电子邮件
而不是两个应用程序
和电子邮件
$csvfile
Application;Email
-----------------
ApplicationName 1;random@address.com
ApplicationName 2;another@email.com
您甚至可以使用双引号引用意外的列名(因为冒号是语句分隔符):
要获得预期结果,请使用-Delimeter
参数,如下所示:
$csvfile = Import-CSV -Path C:\temp\ps.csv -Delimiter ";"
$csvfile
Application Email
----------- -----
ApplicationName 1 random@address.com
ApplicationName 2 another@email.com
这种情况会发生,因为您使用分号代码>作为字段分隔符。默认情况下,需要逗号,
。因此,只有一列名为Application;电子邮件
而不是两个应用程序
和电子邮件
$csvfile
Application;Email
-----------------
ApplicationName 1;random@address.com
ApplicationName 2;another@email.com
您甚至可以使用双引号引用意外的列名(因为冒号是语句分隔符):
要获得预期结果,请使用-Delimeter
参数,如下所示:
$csvfile = Import-CSV -Path C:\temp\ps.csv -Delimiter ";"
$csvfile
Application Email
----------- -----
ApplicationName 1 random@address.com
ApplicationName 2 another@email.com
请您发布实际文件内容(至少几行没有敏感数据)而不是Excel(?)屏幕截图?只在屏幕截图下方添加。您可以发布实际文件内容(至少几行没有敏感数据)而不是Excel(?)屏幕截图吗?只在屏幕截图下方添加非常感谢您的回答,这解决了我的问题!非常感谢你的回答,这解决了我的问题!