Powershell循环迭代

时间:2017-04-19 16:09:10

标签: powershell

#gets the file location/file name of the IP address
Param($addr)
$file = Get-Content $addr
$i = 0
while ($i -ne $file.Count) {
  Write-Host $file
  $i++
}

输出:

8.8.8.8 127.0.0.1 208.67.222.222
8.8.8.8 127.0.0.1 208.67.222.222
8.8.8.8 127.0.0.1 208.67.222.222

文件内容:

8.8.8.8
127.0.0.1
208.67.222.222

我只想让它迭代并打印出一行,而不是所有三行在一行上打印3次。我需要这个,所以我可以在每个地址上运行ping命令。

2 个答案:

答案 0 :(得分:0)

您必须在[]上使用索引运算符$file

#gets the file location/file name of the IP address
param($addr)
$file = get-content $addr
$i=0 
while ($i -ne $file.count){
   write-host $file[i]
   $i++
}

答案 1 :(得分:0)

你可以使用$ _作为带有管道的文件行:

Param($addr)
Get-Content $addr | foreach{ $_ }


#short version
Param($addr)
gc $addr | %{ $_ }