Powershell 逐行遍历变量

Powershell 逐行遍历变量,powershell,Powershell,我有一个小脚本,可以将文本输出到变量中。 为了解析它,我需要一行一行地遍历它。 我可以通过将变量输出到文本文件,然后使用Get Content读取它来实现这一点,但这似乎有点多余 我的脚本连接到Fortigate单元并运行某个查询。它的响应就是我想要解析的 New-SshSession 10.0.0.138 -Port 65432 -Credential (Get-Credential) -AcceptKey $command = 'config router policy show' $res

我有一个小脚本,可以将文本输出到变量中。 为了解析它,我需要一行一行地遍历它。 我可以通过将变量输出到文本文件,然后使用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

根据您的描述,您的变量是一个带换行符的字符串。通过调用以下命令,可以将其转换为单行字符串数组:

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

以下是基于的解决方案,这是拆分的默认行为。
这将适用于所有类型的线端点:

  • Windows(CR LF)
    \r\n
  • 旧Macintosh(CR)
    \r
  • Unix(LF)
    \n
($result-split“\r?\n | \r”)|主机外
如果要消除连续换行符,可以使用:

($result-split“[\r\n]+”)\Out主机

为什么我被否决了?在Stackoverflow上的任何位置都找不到该变量…如果您的变量已经是
[Object[]]
,请立即迭代。如果没有,请使用
split
。关于反对票,他们可能会说你搜索不够努力。可能会提供有关如何获取变量内容的代码,如果存在敏感数据,则对敏感数据进行XXXXXXIX。使用-split方法对我不起作用,但使用$Result。split(
r
n”)有效吗?您的行尾可能是`r或`n vs.`r`n
ForEach ($line in $($result -split "`r`n"))
{
    Write-host $Line
}