クエリを実行するネットワークの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ファイルを開いてすべてのヘッダーを入力できます。これを解決する他の方法はありますか?
その場でヘッダーを作成できます(区切り文字がコンマの場合、区切り文字を指定する必要はありません):
Import-CSV $filepath -Header IP1,IP2,IP3,IP4 | Foreach-Object{
Write-Host $_.IP1
Write-Host $_.IP2
...
}
解決策は、区切り文字を変更することです。
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ファイルを読み取り、他の区切り文字を使用して各列を区切ることができます。
それは私のスクリプトのために働いた:-)
$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"
}
}