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

如何在PowerShell调用脚本时正确获取被调用脚本的exit返回值

问题根源

  • 你用Invoke-Expression捕获执行结果时,会默认收集被调用脚本所有Write-Output输出的标准流内容,所以$Result会额外包含测试字符串。
  • PowerShell 中脚本通过exit指定的退出码不会被Invoke-Expression直接返回,需要读取自动变量$LASTEXITCODE获取,原调用逻辑没有正确捕获该退出码。

实现方案

第一步:修改调用脚本testcaller.ps1

调整调用逻辑,丢弃不需要的标准输出,直接读取脚本退出码:

# 使用&调用被调用脚本,将标准输出重定向到空设备丢弃
& "$PSScriptRoot\testcalled.ps1" > $null
# 读取上一个脚本执行的退出码
$Result = $LASTEXITCODE
$LogMessage = "TestCalled ended with Result $Result"
Write-Output $LogMessage

可选调整:处理被调用脚本的测试输出

如果你需要保留testcalled.ps1里的测试信息打印,又不想它被捕获到返回结果中,可以把原脚本里的Write-Output $TestMessage改为Write-Host $TestMessage,该命令会将内容直接输出到控制台,不会进入标准输出流。

修改后执行调用脚本,即可得到期望输出:TestCalled ended with Result 1

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 17:54:03