在PowerShell中读取CSV文件
问题描述:
我正在尝试使用PowerShell来读取.csv文件。在PowerShell中读取CSV文件
文件我用的是这样一个长相:
Application;Email
ApplicationName 1;[email protected]
ApplicationName 2;[email protected]
我搜索互联网上的一些方法来读取的.csv文件与PowerShell的,我发现这一个这看起来很简单明了:
$csvfile = Import-CSV -Path "$ScriptDir\SpecificApp.csv"
Foreach ($el in $csvfile) {
Write-Host $el.Email
}
prob LEM的是,它不显示任何东西,当我尝试改变线Write-Host $el.Email
与Write-Host $el
我得到这个:
@{Application;Email=ApplicationName 1;[email protected]} @{Application;Email=ApplicationName 2;[email protected]}
我知道我可以做一些.split()
检索数据,但我想了解我怎样才能得到这些数据通常
答
出现这种情况,因为你正在使用分号;
作为字段分隔符。默认情况下,Import-CSV
需要逗号,
。因此,有刚刚任命Application;Email
,而不是两个Application
和Email
$csvfile
Application;Email
-----------------
ApplicationName 1;[email protected]
ApplicationName 2;[email protected]
您甚至可以使用双引号指的是意想不到的列名的一列(如冒号声明分隔符):
$csvfile | % {$_."Application;Email"}
ApplicationName 1;[email protected]
ApplicationName 2;[email protected]
要获得预期的结果,请使用-Delimeter
这样的参数,
$csvfile = Import-CSV -Path C:\temp\ps.csv -Delimiter ";"
$csvfile
Application Email
----------- -----
ApplicationName 1 [email protected]
ApplicationName 2 [email protected]
+0
非常感谢您的回答,这解决了我的问题! –
请问您可以发布实际文件内容(在lea st几行没有敏感数据),而不是一个Excel(?)截图? –
刚刚添加下面的屏幕截图 –