Powershell间接扩展变量

时间:2019-12-13 00:52:32

标签: bash powershell variables

我们有bash间接扩展变量,如下所示 $ {!variable}

powershell中是否有任何等效语法? 如果没有,是否有任何解决方法?

添加示例 $ username_master =“ SomeValue”

$ branch =“ master”

$ name =“ username _” + $ branch

$ value = $($ name)->此处应解析$ name-> username_master,然后应解析$ username_master->“ SomeValue”。

因此echo $ value应该输出“ SomeValue”

可以通过$ {!value}在bash中实现相同的功能,它输出“ SomeValue”,如何在powershell中实现相同的效果?

预先感谢

1 个答案:

答案 0 :(得分:2)

正如您提到的,我们可以在bash中表示为:

a="hello"
ref="a"
echo "${!ref}"

输出:

hello

PowerShell中的等价项为:

$a = "hello"
$ref = [ref]$a
echo $ref.Value

它还会输出:

hello

我希望这就是你想要的。

[编辑]

以OP的示例为例,

$username_master = "SomeValue"
$branch = "master"
$name = "username_" + $branch
Get-Variable -Name $name -valueOnly

输出:

SomeValue

您还可以使用以下方法将变量分配给结果:

$value = Get-Variable -Name $name -valueOnly
echo $value

产量:

SomeValue

希望这会有所帮助。