PowerShell 中的字串插值

Marion Paul Kenneth Mendoza 2023年1月30日
  1. PowerShell 中的變數是什麼
  2. Windows PowerShell 中的字串插值
  3. 在 PowerShell 中使用環境變數進行字串插值
  4. 在 PowerShell 中使用轉義字元進行字串插值
  5. 在 PowerShell 中使用具有特殊字元的變數進行字串插值
  6. 在 PowerShell 中使用子表示式運算子進行字串插值
PowerShell 中的字串插值

Windows PowerShell 中的字串插值將變數的值替換為字串中的佔位符。此外,字串插值的過程顯示字串中變數的值。

Windows PowerShell 字串插值提供了一種更易讀、更易於閱讀和方便的語法來建立格式化字串。本文將討論在 Windows PowerShell 中的字串插值期間使用變數。

PowerShell 中的變數是什麼

在討論 Windows PowerShell 字串插值之前,我們應該首先討論實現這一點的關鍵要求之一:Windows PowerShell 變數。

正如微軟官方文件中所寫,變數是一個記憶體單元,其中儲存了許多資料型別的值。在 Windows PowerShell 中,變數由以美元符號 $ 開頭的字串表示。

$my_var = "Hello World!"

我們將使用這些變數在 Windows PowerShell 中執行字串插值。

Windows PowerShell 中的字串插值

讓我們通過一個示例來了解在 Windows PowerShell 中使用字串插值連線字串。

示例程式碼:

$company = "XYZ Company"
Write-Output "Welcome to $company"

在上面的 PowerShell 指令碼中,$company 變數包含 XYZ Company 字串值。

在雙引號 "" 內,Windows PowerShell 會插入字串變數名稱,並在以下語句中顯示以下結果。

輸出:

Welcome to XYZ Company

如果我們將變數名放在單引號''中,它會改為顯示變數名,如下所示。

示例程式碼:

$company = "XYZ Company"
Write-Output 'Welcome to $company'

輸出:

Welcome to $company

出現此輸出是因為用單引號括起來的任何內容都將內部的任何內容視為文字表示式。因此,請確保在插入字串時使用雙引號。

在 PowerShell 中使用環境變數進行字串插值

環境變數(由 Windows PowerShell 中的 Env: 變數描述)儲存作業系統環境和程式。此資訊詳細資訊包括作業系統路徑、Windows 安裝目錄的位置、作業系統使用的程序數等等。

在 Windows PowerShell 中,環境變數可以像其他標準變數一樣插入到字串中。

示例程式碼:

Write-Output "My computer name: $Env:COMPUTERNAME"

在上面的 PowerShell 指令碼中,$Env: COMPUTERNAME 在雙引號中顯示變數值並將其與字串連線。

輸出:

My computer name: WINDOWS-PC01

在 PowerShell 中使用轉義字元進行字串插值

儘管討論了我們應該在字串插值期間使用雙引號,但在某些情況下將變數放在雙引號內並不能提供預期的結果。一個例子是轉義字元。

轉義字元是一種字元,它呼叫字元序列中後續字元的替代解釋。轉義字元在程式語言中很常見,因為在以程式設計方式編譯時會使用某些符號。

例如,在 Windows PowerShell 中,美元符號 $ 是用於定義變數的最常用運算子之一。我們將在下面使用美元符號作為示例。

示例程式碼:

$price = 99
Write-Output "Discounted Price: $$price"

在上面的 Windows PowerShell 指令碼中,雙引號內的 $price 不會給出預期的輸出,因為指令碼環境對雙美元符號 $$ 的解釋不同。

輸出:

Discounted Price: Discounted Price: $$priceprice

在下面使用 Windows PowerShell 轉義字元進行字串插值以獲得所需的輸出。

示例程式碼:

$price = 99
Write-Output "Discounted Price: `$$price"

輸出:

Discounted Price: $99

在 PowerShell 中使用具有特殊字元的變數進行字串插值

如前所述,以美元符號 $ 開頭的變數名稱可以包含字母數字字元和特殊字元。

定義變數的最佳實踐是僅包含字母數字字元和下劃線 _ 字元。包含其他特殊字元(包括空格)的變數名稱難以使用,應避免使用。

但是,我們並不是說使用帶有特殊字元的變數是不可能的。如果情況無法避免,我們可以使用美元符號和大括號 ${} 來轉義變數名中的所有特殊字元,包括空格。

示例程式碼:

${this is a variable!} = "Hello"
Write-Output "${this is a variable!} World!"

輸出:

Hello World!

在 PowerShell 中使用子表示式運算子進行字串插值

在 Windows PowerShell 中,我們可以使用子表示式運算子 $() 在表示式中執行表示式,例如字串插值。我們通過用美元符號和括號 () 將我們執行的任何表示式括起來來做到這一點。

示例程式碼:

$num1 = 10
$num2 = 5

Write-Output "$num1 + $num2 = $($num1+$num2)"

輸出:

10 + 5 = 15
Marion Paul Kenneth Mendoza avatar Marion Paul Kenneth Mendoza avatar

Marion specializes in anything Microsoft-related and always tries to work and apply code in an IT infrastructure.

LinkedIn

相關文章 - PowerShell String