大括号是否意味着PowerShell变量声明中的任何内容?

Cha*_*ynt 14 variables powershell

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

${var_name} = "Hello world!"
Run Code Online (Sandbox Code Playgroud)

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

$var_name = "Hello world!"
Run Code Online (Sandbox Code Playgroud)

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

Mik*_*ard 13

PowerShell变量名称中的大括号允许变量名称中的任意字符.如果变量名中没有"病态"字符,则不需要大括号,也不起作用.

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


Mic*_*ann 10

乍一看可能不太明显的是,您可以使用中的任何提供程序${},例如:

${c:\tmp\foo.txt}="Hello World"       # C: uses file system provider
Run Code Online (Sandbox Code Playgroud)

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


小智 7

{}大括号声明变量使用在中间或内部的变量,像这样的空间:

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

$var_name = "Hello world!"
Run Code Online (Sandbox Code Playgroud)

它不一样,因为你不能用空格保存变量中的数据,powershell理解变量直到空格,除了它在括号内.

祝你有美好的一天.(: