我正在尝试在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
答案 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