如何在PowerShell中换行?


82

我是PowerShell的新手,并且在循环中连接字符串,如果发生特殊情况,我应该插入换行符...我该怎么做?

基本上寻找的等价物\n

$str = ""
foreach($line in $file){
  if($line -Match $review){ #Special condition
    $str += ANSWER #looking for ANSWER
  }
  #code.....
}

到目前为止,我已经尝试过

"\n" '\n' "\N" '\N' "\r" '\r' "\R" '\R' '`n' '`r' '-n' '-r' 

Answers:


134

尝试"`n"使用双引号。(不是单引号'`n'

有关转义字符的完整列表,请参见:

Help about_Escape_character

该代码应为

$str += "`n"

谢谢,但是不起作用。它给了我The term ' ' is not recognized as the name of a cmdlet, function, sc....
user454322

1
中的示例Help about_Escape_character帮助我找出了问题所在。编辑答案以显示解决方案
2012年

因此,要分割多行字符串,请使用$filestobackup = $files.split("`n");
bgStack15


2

以防万一有人碰到这个问题,以澄清答案`n是重音n,而不是单个记号n


4
实际上是“重音”。波浪号是
elkirkmo

1
感谢您的澄清。
SQLMac

不,ǹ是重音n,`n是反引号n。不知道为什么会这样。如果我缺少某些东西,请发表参考。
克里斯·布罗斯基

1

您也可以使用:

Write-Host "";

或者,根据您的特定问题进行说明:

$str = ""
foreach($line in $file){
  if($line -Match $review){ #Special condition
    $str += Write-Host ""
    $str += ANSWER #looking for ANSWER
  }
  #code.....
}

0

如果转义不起作用,则可以尝试以下操作:

$str += $("" | Out-String)

它只是不添加任何内容,而是作为Out-String,创建了新行。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.