91

我是 [ 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' 
4

6 回答 6

147

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

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

Help about_Escape_character

代码应该是

$str += "`n"
于 2012-08-09T04:42:06.797 回答
10

我想我找到了。您所要做的就是输入“`n”(带引号!)

谢谢!

于 2013-11-28T02:17:49.230 回答
3

以防万一其他人遇到此问题,以澄清答案 `n 是重音 n,而不是单勾 n

于 2016-12-07T16:42:58.787 回答
3

如果你只使用下面这样的代码,你必须在 line 的末尾加上一个重音`

docker run -d --name rabbitmq `
           -p 5672:5672 `
           -p 15672:15672 `
           --重启=总是`
           --主机名rabbitmq-master`
           -vc:\docker\rabbitmq\data:/var/lib/rabbitmq `
           rabbitmq:最新的
于 2020-12-31T13:16:48.527 回答
1

您也可以只使用:

Write-Host "";

或者,就您的具体问题而言:

$str = ""
foreach($line in $file){
  if($line -Match $review){ #Special condition
    $str += Write-Host ""
    $str += ANSWER #looking for ANSWER
  }
  #code.....
}
于 2017-07-12T00:15:04.007 回答
0

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

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

它只是没有添加任何内容,而是添加了一个Out-String,它创建了一个新行。

于 2017-06-15T01:09:49.537 回答