如何读取CSV文件

时间:2019-02-01 14:52:31

标签: powershell csv

我正在尝试在csv中获取该值,该值在第一列中包含IP地址,在第二列中包含主机名。

我试图阅读完整的csv,但是我真的不知道如何选择第一列。

最好是将第一列复制到板$TheIPs = @()中 和主机名相同。

$Currentpath = split-path -parent $MyInvocation.MyCommand.Definition 
$CheminCSV = $currentpath + '\LesIP.csv'

$file = Import-CSV $CheminCSV

$keys = Import-Csv .\keys.csv | select -ExpandProperty

Write-Host($file) #Show me all my csv
Write-Host($keys) # Not working

3 个答案:

答案 0 :(得分:1)

假设这样的CSV文件...

IP,Hostname
123,host123
456,host456
789,host789

...您可以按其名称访问每一列,就像...

$csv = Import-Csv ".\LesIP.csv"

# Accessing the row "IP"
$csv."IP"

请记住,Import-Csv假定您具有逗号分隔的文件,该文件带有 UTF-8 -编码。如果不是这种情况,则可以使用参数-Encoding-Delimiter

来指定那些属性。

答案 1 :(得分:1)

您可以使用Get-Member来查找任何对象,例如:$keys | Get-Member或简称为$keys | gm

第一行应包含标题。

因此,假设$keys | select ip是标头,对于所有ip,ip

答案 2 :(得分:0)

选择IP属性值,然后简单地为其分配一个变量。

使用ExpandProperty仅包括IP本身,而不包括列标题。

$Currentpath = split-path -parent $MyInvocation.MyCommand.Definition 
$CheminCSV = $currentpath + '\LesIP.csv'

$csv = Import-CSV $CheminCSV

$MyIPS = $csv | select -ExpandProperty IP

# and for hostnames
$MyHostnames = $csv | select -ExpandProperty HostName