逐行迭代变量

时间:2015-07-22 12:57:39

标签: powershell

我有一个将文本输出到变量的小脚本。 我需要逐行完成它才能解析它。 我可以通过将变量输出到文本文件,然后使用Get-Content读取它来做到这一点,但这看起来有点多余。

我的脚本连接到Fortigate单元并运行某个查询。它的回应就是我要解析的内容。

New-SshSession 10.0.0.138 -Port 65432 -Credential (Get-Credential) -AcceptKey
$command = 'config router policy
show'
$result = Invoke-SSHCommand -Index 0 -Command $command

3 个答案:

答案 0 :(得分:10)

ForEach ($line in $($result -split "`r`n"))
{
    Write-host $Line
}

答案 1 :(得分:5)

根据您的描述,您的变量是带换行符的字符串。你可以通过调用它来将它变成一个单行字符串数组:

$result = $result -split "`r`n"

答案 2 :(得分:2)

这是基于RegexMatch的解决方案,这是split的默认行为。
这将适用于所有类型的行尾:

  • Windows(CR LF)\r\n
  • 旧版Macintosh(CR)\r
  • Unix(LF)\n
($result -split "\r?\n|\r") | Out-Host

如果要摆脱连续的换行符,可以使用:

($result -split "[\r\n]+") | Out-Host