我有一个巨大的逗号分隔的CSV列表,其中包含我想要运行查询的网络的IP地址。我的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文件并输入所有标题。有没有其他方法可以解决这个问题?
答案 0 :(得分:20)
您可以动态创建标题(当分隔符是逗号时无需指定分隔符):
Import-CSV $filepath -Header IP1,IP2,IP3,IP4 | Foreach-Object{
Write-Host $_.IP1
Write-Host $_.IP2
...
}
答案 1 :(得分:0)
$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"
}
}
答案 2 :(得分: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文件并使用其他分隔符来分隔每列。
它适用于我的脚本: - )
答案 3 :(得分:0)
$filepath = ".\ADcomputerslist.csv" $servers = Import-CSV $filepath -delimiter ","
Foreach ($servers 中的 $entry) { write-host $entry.name }
$servers = Get-ADComputer -Filter * -Property * | Select-Object Name,OperatingSystem,OperatingSystemVersion,ipv4Address
Foreach ($servers 中的 $entry) { write-host $entry.name }