$ {}语法/运算符的用途是什么?

时间:2017-12-11 20:30:51

标签: powershell operators

编辑:我对运营商功能的其他想法 -

它似乎实现了适用于IContentCmdletProviderenv:function: PSDrives的drive:界面。 (这可能是它与隐式variable: psdrive交互的方式)。此界面使用Get-ContentSet-Content cmdlet。

我无法在此功能上找到Microsoft的文档(在搜索引擎中搜索符号也非常困难)。我已经看到了${}可以实现的一些非常奇怪的行为。例如:

${C:\Temp\Filename.txt} = 'This writes to the file!'

$ExampleString = ${C:\Temp\Filename.txt} #this gets file content!?

在一些自动模块中,我还看到用这种语法${Message}声明的函数参数变量,我不确定是否应该更改它以符合编码标准或者语法实际上是否有重要意义(在本例中,Jeffrey Snover的MetaProgramming模块)。我自己在字符串扩展中使用语法调用变量,但这是我所知道的唯一用例。

那么,${}会给出什么?

1 个答案:

答案 0 :(得分:1)

所以errors有两个不同的目的。其中一个是变量声明,因为它允许您在变量名中包含任何特殊字符:

${}

但也允许你在更大的字符串中使用它,如:

${special var with spaces}

正如您所建议的那样,另一个用例是它能够读取路径。

$Var="middle"
Write-Host "Before${Var}After"

相同
$Var = ${C:\Temp\Filename.txt}

但也要写一条路:

$Var = Get-Content -Path 'C:\Temp\Filename.txt'

相同
${C:\Temp\Filename.txt} = 'This writes to the file!'