16

クエリを実行したいネットワークの IP アドレスを含む巨大なカンマ区切りの CSV リストがあります。私の CSV 入力の例:

172.168.0.1,172.168.0.2,172.168.0.3,172.168.0.4

等....

次のコードを実行して出力をテストすると:

$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 に答える