我正在尝试理解Powershell如何在命令行上处理变量表达式(例如,作为cmdlet的参数)。我似乎不能确切地理解它是如何解析涉及多个变量(和/或变量的属性)的表达式的。下面是一些基于以下预定义变量的示例:
$a = 'abc'
$b = 'def'
$f = Get-ChildItem .\Test.txt # assuming such a file exists in the current directory
示例1:
echo $a$b
输出:abcdef
示例2:
echo $a\$b
输出:abc\def
示例3:
echo $f.BaseName
输出:Test
示例4:
echo $a\$f.BaseName
输出:abc\C:\Test.txt.BaseName
基本上,我不明白为什么我可以组合两个变量(示例1和2),我可以使用变量属性(示例3),但我不能将变量与其他变量属性组合(示例4)。我已经尝试了各种转义序列(使用反引号),但都没有效果。
我意识到我可以使用$()
风格的表达式来实现这一点,例如:
echo $($a + '\' + $f.BaseName)
我只是不明白为什么另一个表单(示例4)是无效的--在我看来,它看起来更干净。
https://stackoverflow.com/questions/50727510
复制相似问题