2011年3月7日

在 Windows PowerShell 中,要使用雙引號(")還是單引號(')顯示文字呢?

Windows PowerShell 允許我們在顯示文字或設定文字變數時,使用雙引號(")跟單引號(')。

例如顯示字串:

'這個是字串'
"這也是字串"

執行結果如下:
顯示文字

設定字串:

$OK = '我說:"沒有問題!"'
$GO = "Let's go."
Write-Host $OK $GO

結果:
設定並顯示文字變數

以上面的範例程式碼來說,如果變數要全部改用雙引號(")或單引號(')來表示,要怎麼辦呢?

有 2 種方式可用,第 1 種是只要把雙引號或單引號再重複一次即可,另外一種方式則使用逸出字元,要提醒大家的是,PowerShell 的逸出字元是 `(跟波浪符號位於同一個按鍵的那個),而非許多語言所用的反斜線(\)。

  • 方法 1:重複一次單引號或雙引號
    $OK = "我說:""沒有問題!"""
    $GO = 'Let''s go.'
    Write-Host $OK $GO

  • 方法 2:使用逸出字元(`)
    $OK = "我說:`"沒有問題!`""
    $GO = "Let's go."
    Write-Host $OK $GO

由上面的數個範例可以看出來,使用雙引號(")跟單引號(')來顯示文字或設定文字變數並沒有什麼差別。但是若要顯示文字變數真正的值時,就有差異了。如下圖,要顯示變數真正的值必須要使用雙引號,如果使用單引號,那麼只會顯示該變數的名稱。

一言以蔽之,雙引號展開變數的值,用單引號只會顯示變數的名稱

要顯示變數真正的值必須要使用雙引號

沒有留言:

張貼留言