16

我有一个巨大的逗号分隔的 CSV 列表,其中包含我想要对其运行查询的网络 IP 地址。我的 CSV 输入示例:

172.168.0.1,172.168.0.2,172.168.0.3,172.168.0.4

ETC....

当我运行以下代码来测试输出时:

$filepath = "c:\scripts\servers.csv" 
$servers = Import-CSV $filepath -delimiter "," 

Foreach ($server in $servers) {
     write-host $server

}

我没有输出,我认为这是因为没有指定标题。我显然可以做一个解决方法并打开 CSV 文件并输入所有标题。有没有其他方法可以解决这个问题?

4

4 回答 4

26

您可以即时创建标题(当分隔符是逗号时无需指定分隔符):

Import-CSV $filepath -Header IP1,IP2,IP3,IP4 | Foreach-Object{
   Write-Host $_.IP1
   Write-Host $_.IP2
   ...
}
于 2013-03-02T10:08:54.380 回答
1
$IP_Array = (Get-Content test2.csv)[0].split(",")
foreach ( $IP in $IP_Array){
    $IP
}

Get-content Filename 为每一行返回一个字符串数组。

仅在第一个字符串上,我根据“,”将其拆分。将其转储到 $IP_Array。

$IP_Array = (Get-Content test2.csv)[0].split(",")
foreach ( $IP in $IP_Array){
  if ($IP -eq "2.2.2.2") {
    Write-Host "Found $IP"
  }
}
于 2013-03-02T22:28:22.333 回答
0

解决方案是更改分隔符。

csv 文件的内容 -> 注意 .. 还有空格和 , 值

值为 6 个荷兰语单词 aap、noot、mies、Piet、Gijs、Jan

Col1;Col2;Col3

a,ap;noo,t;mi es

P,iet;G ,ijs;Ja ,n



$csv = Import-Csv C:\TejaCopy.csv -Delimiter ';' 

回答:

Write-Host $csv
@{Col1=a,ap; Col2=noo,t; Col3=mi es} @{Col1=P,iet; Col2=G ,ijs; Col3=Ja ,n}

可以读取 CSV 文件并使用其他分隔符来分隔每一列。

它适用于我的脚本:-)

于 2016-06-22T09:24:03.013 回答
0

$filepath = ".\ADcomputerslist.csv" $servers = Import-CSV $filepath -delimiter ","

Foreach($servers 中的 $entry){ write-host $entry.name }

也可以用对象替换愚蠢的文件。

$servers = Get-ADComputer -Filter * -Property * | 选择-对象名称、操作系统、操作系统版本、ipv4 地址

Foreach($servers 中的 $entry){ write-host $entry.name }

于 2021-03-15T19:18:24.747 回答