首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >PowerShell中散列表值的字符串插值

PowerShell中散列表值的字符串插值
EN

Stack Overflow用户
提问于 2012-05-25 20:38:08
回答 4查看 22.7K关注 0票数 45

我有一个哈希表:

$hash = @{ First = 'Al'; Last = 'Bundy' }

我知道我可以做到:

Write-Host "Computer name is ${env:COMPUTERNAME}"

所以我希望这样做:

Write-Host "Hello, ${hash.First} ${hash.Last}."

...but我得到了这个:

Hello,  .

如何在字符串插值中引用哈希表成员?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-05-25 20:42:16

Write-Host "Hello, $($hash.First) $($hash.Last)."
票数 86
EN

Stack Overflow用户

发布于 2012-05-25 20:45:30

"Hello, {0} {1}." -f $hash["First"] , $hash["Last"]    
票数 22
EN

Stack Overflow用户

发布于 2013-06-11 05:37:02

通过添加一个小函数,您可以更通用一些,如果您愿意的话。但是要小心,您正在$template字符串中执行可能不受信任的代码。

Function Format-String ($template) 
{
    # Set all unbound variables (@args) in the local context
    while (($key, $val, $args) = $args) { Set-Variable $key $val }
    $ExecutionContext.InvokeCommand.ExpandString($template)
}

# Make sure to use single-quotes to avoid expansion before the call.
Write-Host (Format-String 'Hello, $First $Last' @hash)

# You have to escape embedded quotes, too, at least in PoSh v2
Write-Host (Format-String 'Hello, `"$First`" $Last' @hash)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10754582

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档