PowerShell中拼接变量名获取变量值报错问题求助
PowerShell动态获取拼接名称变量值的问题解决
嘿,我知道你为啥报错啦!问题出在你给Get-Variable传的变量名里多了个$符号~
先看你原来的代码:
$GV_R32_var = "testtesttest" $m = "R32" (Get-Variable -Name "`$GV_$($m)_var").Value
这里你把变量名写成了$GV_R32_var,但PowerShell里变量的实际名称是不带开头$的,你要找的变量真实名称是GV_R32_var,所以系统自然找不到你写的那个带$的名称,就抛出了找不到变量的错误。
正确的写法有两种:
- 去掉开头转义的
$,保留拼接逻辑:
$GV_R32_var = "testtesttest" $m = "R32" (Get-Variable -Name "GV_$($m)_var").Value
执行这个就能直接拿到testtesttest啦。
- 用更简洁的写法,加上
-ValueOnly参数直接返回值:
$GV_R32_var = "testtesttest" $m = "R32" Get-Variable "GV_$m_var" -ValueOnly
这个写法省去了后面的.Value,代码更清爽。
本质上就是记住:Get-Variable需要的是变量的名称字符串,不是带$的变量引用,所以别多写那个开头的$就好啦~
内容的提问来源于stack exchange,提问作者Danijel de Vasco
相关产品推荐
相关产品推荐

