我有一个将文本输出到变量的小脚本。 我需要逐行完成它才能解析它。 我可以通过将变量输出到文本文件,然后使用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
答案 0 :(得分:10)
ForEach ($line in $($result -split "`r`n"))
{
Write-host $Line
}
答案 1 :(得分:5)
根据您的描述,您的变量是带换行符的字符串。你可以通过调用它来将它变成一个单行字符串数组:
$result = $result -split "`r`n"
答案 2 :(得分:2)
这是基于RegexMatch的解决方案,这是split的默认行为。
这将适用于所有类型的行尾:
\r\n
\r
\n
($result -split "\r?\n|\r") | Out-Host
如果要摆脱连续的换行符,可以使用:
($result -split "[\r\n]+") | Out-Host