You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PowerShell中如何调用嵌套在另一变量内的变量值?

解决方法

方法1:使用Get-Variable(动态变量名场景首选)

你之前的"$Path$app"写法无法生效,是因为PowerShell会将其解析为独立的$Path变量和$app变量的值拼接,而非先拼接变量名再取对应值。正确写法通过Get-Variable cmdlet 读取动态命名的变量值:

# 原有变量定义
$PathTom = "C:/test/"
$app = "Tom"

# 动态获取对应路径,加-ValueOnly参数可直接返回变量值,无需额外取属性
$targetPath = Get-Variable -Name "Path$app" -ValueOnly

# 输出结果为 C:/test/
Write-Output $targetPath

方法2:使用哈希表(更易维护的架构方案)

这种按应用名匹配对应路径的场景,用哈希表存储映射关系比动态生成变量名安全性更高、后续维护更方便:

# 提前定义所有应用和路径的映射关系,新增应用直接加键值对即可
$appPathMap = @{
    Tom = "C:/test/"
    Web = "C:/web/project/"
}

$app = "Tom"
# 直接通过应用名取值
$targetPath = $appPathMap[$app]

Write-Output $targetPath

不推荐方案:Invoke-Expression

你也可以通过表达式解析实现需求,但该方法存在代码注入风险,仅当你能100%控制$app的所有可能取值时使用:

$targetPath = Invoke-Expression "`$Path$app"

内容的提问来源于stack exchange,提问作者user9616338

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 03:54:01