在 powershell 中,雙引號"表示“可擴展”字串,類似于其他背景關系中的“字串插值”。單引號'是不進行插值的字串。
我很喜歡這種區別,因為它可以幫助我預測特定字串的使用方式。
然而
根據這些 MS 檔案,轉義序列僅在包含在雙引號 (") 字串中時才被解釋。
這似乎暗示我不能在單引號字串中放置換行符?
uj5u.com熱心網友回復:
實際上,PowerShell 的逐字字串('...',即單引號)僅支持一個轉義序列:'',它允許您嵌入逐字'
因此,您的選擇是:
要么:在您的string 中嵌入逐字(實際)換行符
'...'。或者-這適用于任何字符要生成程式,而不是逐字-使用字串連接(
)或通過模板的方法-f,該格式的操作
以下示例展示了這些技術:
'--- verbatim'
# Note: If the enclosing script uses Windows-style CRLF newlines,
# so will this string ("`r`n").
'line1
line2'
'--- concatenation'
# Note: In lieu of "`n" you may use [char] 10
# For Windows-style CRLF newlines, use "`r`n" or [char] 13 [char] 10
'line1' "`n" 'line2'
'--- -f operator:
'line1{0}line2' -f "`n"
如果嵌入逐字換行符是一種選擇,你也可以使用一個逐字此處的字串為更好的可讀性,它具有的附加優勢不具有逃避嵌入式'字符:
# Here-string
@'
line1
line2
No escaping of ' needed.
'@
與常規逐字字串一樣,由封閉腳本(Windows 風格的 CRLF 與 Unix 風格的 LF)的換行符格式決定了字串中使用的換行符的格式。
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/376419.html
