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

PowerShell:带do-while循环的函数输出无法存入变量

解决PowerShell函数返回值无法存入变量的问题

我来帮你搞定这个问题!你的AD-prompt函数现在没法把用户输入的值返回给变量,核心原因是函数没有输出最终的$in值——PowerShell函数默认会把所有未被捕获的输出作为返回值,但你现在只是把Read-Host的结果存到了$in里,却没把这个值“吐”出来。

修正方案

只需要在循环结束后,把$in的值输出即可(PowerShell里直接写变量名就会输出它的值,或者用return关键字,效果一致):

function AD-prompt($Text) {
    do {
        $in = Read-Host -Prompt "$Text"
    } while($in -eq "")
    $in  # 这里输出变量值,作为函数的返回结果
}

为什么之前不行?

  • 当你移除循环时,Read-Host的输出直接成为函数的返回值,所以$type能拿到内容;
  • 加了do-while循环后,Read-Host的结果被赋值给$in,这个操作没有产生输出,循环结束后函数也没有任何输出,自然返回空值,导致$type没有内容。

现在再调用$type = AD-prompt "Sample Text",输入内容后,$type就能正常存储你输入的值啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 06:55:51