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

SSIS执行PowerShell脚本:如何传递输出至User::TestStatus变量

解决SSIS中PowerShell输出传递至变量的问题

检查PowerShell脚本输出逻辑

  • 确保PowerShell脚本用Write-Output返回结果,别用Write-Host(后者仅输出到控制台,无法被SSIS捕获)。示例:
    $output = "需要返回的内容"
    Write-Output $output.Trim()
    
  • 用Trim()处理结果,避免多余换行或空白字符干扰赋值。

配置SSIS执行进程任务

  • 在「执行进程任务」的「表达式」面板中:
    • 把StandardOutputVariable设置为User::TestStatus,确认变量类型为字符串。
    • 可选配置StandardErrorVariable捕获错误信息,防止错误输出覆盖正常结果。
  • 到「选项」页取消勾选「忽略退出代码」,保证脚本执行完成后再传递输出。

修正变量赋值逻辑

  • 别直接用表达式修改User::TestStatus——执行进程任务的输出会覆盖变量值,提前的表达式修改会导致值被清空。
  • 若需处理返回值,在执行进程任务后加脚本任务,读取变量并处理后重新赋值。示例C#代码:
    string rawStatus = Dts.Variables["User::TestStatus"].Value.ToString();
    Dts.Variables["User::TestStatus"].Value = rawStatus.Trim().Replace("\r\n", "");
    

关于断点临时值的说明

你看到的{20\r\n}是SSIS调试时的临时格式,20代表返回字符串长度,\r\n是换行符,说明脚本确实有输出,重点排查执行进程任务的输出变量配置是否正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 01:02:37