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

如何在PowerShell的Read-Host中正确输出变量的属性值

PowerShell Read-Host提示文本变量属性展开解决方案

你现有代码存在两处核心问题:

  1. 变量名前缀错误:PowerShell普通变量赋值以$开头,你写的@Answer属于错误写法,@符仅用于数组定义、参数splatting等特殊场景,此处需改为$Answer。
  2. 双引号属性展开规则不匹配:PowerShell双引号默认仅自动展开独立变量名,碰到.属性访问符时,会将变量名结束后的部分视为普通文本,不会自动计算属性值,所以你之前直接写$VM.Name、或在双引号内加括号的写法都不生效。

方案1:使用子表达式运算符$()包裹属性(最常用)

在双引号内用$()把需要计算的属性表达式包起来,PowerShell会先计算括号内的内容再替换到字符串中:

$Answer = Read-Host -Prompt "Power Off $($VM.Name) yes/no"

方案2:提前拼接提示字符串

先把提示文本拼接完成后再传给Read-Host,避免在双引号内处理属性展开,逻辑更直观:

$promptText = "Power Off " + $VM.Name + " yes/no"
$Answer = Read-Host -Prompt $promptText

方案3:使用格式化字符串

用-f格式化运算符替换占位符,适合提示文本复杂、有多个变量需要替换的场景:

$promptText = "Power Off {0} yes/no" -f $VM.Name
$Answer = Read-Host -Prompt $promptText

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 19:15:01