2012-08-09 63 views
40

我是[完全新的PowerShell和]在一個循環中串聯一個字符串,如果發生特殊情況我應該插入一個換行符...我該怎麼做?如何在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' 

回答

74

嘗試`n'`n'

轉義字符的完整列表,請參閱:

Help about_Escape_character

代碼應該是

$str += "`n" 
+0

謝謝,但不起作用。 它給我'術語' '不被識別爲cmdlet的名稱,函數,sc ....' – user454322 2012-08-09 04:52:47

+1

'Help about_Escape_character'中的示例幫助我找出問題所在。編輯答案以顯示解決方案 – user454322 2012-08-09 04:56:46

+0

因此,要分割多行字符串,請使用'$ filestobackup = $ files.split(「\'n」);' – bgStack15 2015-04-01 19:31:41

8

我想我找到了它。你所要做的就是輸入「`n」(帶有引號!)

謝謝!

0

萬一別人遇到這個,澄清回答`n是重音N,而不是單一剔ň

+3

它實際上是一個「重音符號」。代字號是〜 – elkirkmo 2017-01-19 19:38:50

+0

感謝您的澄清。 – SQLMac 2017-01-20 16:12:07

0

如果逃避是不行的,你可以試試這個:

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

它只是不加任何東西,但作爲Out-String,它創建了一個新的行。

0

你也可以使用:

Write-Host ""; 

或者,把它放在你的具體問題方面:

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