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