for loop output not saving

时间:2017-12-11 00:04:26

标签: powershell for-loop replace

我对循环如何工作存在根本性的差距,我是脚本新手。 有人可以向我解释如何在变量中保存我的总$i输出吗?在第二个例子中,我尝试了几种不同的方式,$c从未有过值。

该脚本应该是一个通过排除多余空格来解析IP地址列表的函数,并替换为删除IPV6地址/清理输出。 我只需要能够保存输出,以便我可以继续处理下一部分。

我的脚本的工作部分:

Function Get-LsweeperIPStrip {
    param([string]$path)
    $attempt = @(get-content -Path $path | Where-Object {$_ -NotLike '*fe80*' })
    $b = ($attempt.replace(";", "`n")) | Sort-Object 

    foreach ($i in $b) {
        $i.replace("`"", "")

    }

}

我认为这样可行:

Function Get-LansweeperIPStrip {
    param([string]$path)
    $attempt = @(get-content -Path $path | Where-Object {$_ -NotLike '*fe80*' })
    $b = ($attempt.replace(";", "`n")) | Sort-Object 
    $c = @()   
    foreach ($i in $b) {
        $c += $i.replace("`"", "")

    }
}

以下是Get-Content的一些示例地址:

"172.21.69.139;10.162.0.146;fe80::68a2:de4c:b4b6:5518
10.140.94.163;fe80::248e:4a6e:8f94:c1e5
10.133.124.13"
10.25.159.103
10.25.159.105;fe80::1838:fcc8:3d7d:362f
10.25.159.106
10.15.160.134

1 个答案:

答案 0 :(得分:0)

This seemed to work:


clear-host
Function Get-LansweeperIPStrip{
param([string]$path)
$attempt = @(get-content -Path $path | Where-Object {$_ -NotLike '*fe80*' })
$b = ($attempt.replace(";","`n")) | Sort-Object  
$c=
    foreach ($i in $b) {

            $i.replace("`"","") 
         }

  $c | out-file C:\Users\drewt\Desktop\dump.txt

 }