大括号是否表示PowerShell变量声明中的任何内容?

时间:2016-04-21 15:15:12

标签: powershell variables

我遇到过像这样声明的变量(或参数):

${var_name} = "Hello world!"

据我所知,这与以下内容没有什么不同:

$var_name = "Hello world!"

我想知道第一个例子中的{}大括号是否具有任何意义。他们是否改变了变量的行为?

3 个答案:

答案 0 :(得分:12)

PowerShell变量名称中的大括号允许变量名称中的任意字符。如果没有"病理"变量名中的字符,则不需要大括号,也没有效果。

你会发现"生成"代码有时会使用花括号,因为它们保证变量名有效。

答案 1 :(得分:7)

{}括号用于声明变量,变量的中间或内部有空格,如下所示:

${var_name   hello   } = "Hello world!2"

$var_name = "Hello world!"

它不一样,因为你不能用空格将数据保存在变量中,powershell会将变量理解为一个空格,除了它在括号内。< / p>

祝你有个美好的一天。 (:

答案 2 :(得分:0)

乍一看可能并不明显,就是可以使用${}中的任何provider,例如:

${c:\tmp\foo.txt}="Hello World"       # C: uses file system provider

效果取决于提供程序,对于文件系统提供程序,该示例更改了指定文件的内容。