PowerShell 中变量的一般语法是:$variable
。
【变量语法的好处】
这种语法有一个好处是,只有以$
开头的才是变量,所以通常字符串不需要单/双引号定界符。
比如:Write-Host $test me
会将名为test
的变量值通过空格拼接上字符串me
(注音这里字符串没有用引号引起来)。
但是,很容易想到的一个问题是,如果变量名后没有空格自然分割,那么从逻辑上就不能区分变量名的界限。比如:$testme
并不能表示名为 test
的变量值直接拼接上字符串 me
,而是表示名为变量 testme
的变量。
另一方面,该语法中,变量名也不能包含空格、标点符号(如冒号)、运算符或其他特殊字符。但是,如果使用另一种带定界符的变量语法,基本上任意特殊字符都可以用于变量名。
另一种变量语法是:${variable}
。
当然,普通的变量名也可以用花括号括起来,只是不必要。
使用该语法可以定义诸如此类的特殊变量:
1 | ${1+1} = "等于2" |
还有一种场景是,引用变量对象的属性或调用方法,独立的形式下可以直接访问:
1 | Write-Host $test.GetType().Name |
但是,当其前后紧临其他内容时,需要使用 $()
将整个链式访问括起来:
1 | $test = "test" |
【回顾小结】
- 普通变量访问语法
$variable
- 包含特殊字符或紧临其他内容时
${variable}
- 链式访问属性/方法
$(${variable}.propertyOrMethod)