繁体   English   中英

导入-CSV 和 Foreach

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM