[英]Import-CSV and Foreach
我有一个巨大的逗号分隔的 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 文件并输入所有标题。 有没有其他方法可以解决这个问题?
您可以即时创建标题(当分隔符为逗号时无需指定分隔符):
Import-CSV $filepath -Header IP1,IP2,IP3,IP4 | Foreach-Object{
Write-Host $_.IP1
Write-Host $_.IP2
...
}
$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"
}
}
解决方案是更改分隔符。
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 文件并使用其他分隔符来分隔每一列。
它适用于我的脚本:-)
$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 }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.