PowerShell 技能连载 - 向字符串添加数字(第 2 部分)

在前一个技能中我们演示了一系列安全地将变量加入到字符串中的方法。将变量变量添加到双引号包围的文本中会导致

# this is the desired output:
# PowerShell Version is 5.1.17763.316

# this DOES NOT WORK:
"PowerShell Version is $PSVersionTable.PSVersion"

当您运行这段代码,输出结果并不是大多数人想象的那样。语法着色已经暗示了错误的地方:双引号括起来的字符串只会解析变量。他们不关心后续的任何信息。所以由于 $PSVersionTable 是一个哈希表对象,PowerShell 输出的是对象类型名称,然后在后面加上 “.PSVersion”:

1
2
PS> "PowerShell Version is $PSVersionTable.PSVersion"
PowerShell Version is System.Collections.Hashtable.PSVersion

以下是四种有效的实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
# use a subexpression
"PowerShell Version is $($PSVersionTable.PSVersion)"

# use the format (-f) operator
'PowerShell Version is {0}' -f $PSVersionTable.PSVersion


# concatenate (provided the first element is a string)
'PowerShell Version is ' + $PSVersionTable.PSVersion

# use simple variables
$PSVersion = $PSVersionTable.PSVersion
"PowerShell Version is $PSVersion"

PowerShell 技能连载 - 向字符串添加数字(第 2 部分)

http://blog.vichamp.com/2019/04/15/adding-numbers-to-a-string-part-2/

作者

吴波

发布于

2019-04-15

更新于

2022-07-06

许可协议

评论