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

Azure DevOps Pipeline:PowerShell写入JSON到文件时遇语法错误求助

问题排查与解决

核心原因

PowerShell会对变量中的JSON语法(比如{}、"等符号)进行表达式解析,而非当作纯字符串处理,这直接触发了语法错误。而CmdLine任务仅直接输出字符串内容,不会做语法解析,因此能正常工作。

解决方案

方法1:用单引号包裹变量,强制按纯字符串处理

在PowerShell任务中,将变量用单引号包裹,避免PowerShell解析JSON语法:

'$(swaggerContent)' | Out-File -FilePath ./swagger.json -Encoding utf8

方法2:通过环境变量读取

Azure DevOps会将流水线变量注入为环境变量,通过环境变量读取可绕过直接解析问题:

$env:swaggerContent | Out-File -FilePath ./swagger.json -Encoding utf8

方法3:使用Here-String保留原始格式

如果JSON内容包含复杂转义,Here-String能更好地保留字符串原始格式:

@"
$(swaggerContent)
"@ | Out-File -FilePath ./swagger.json -Encoding utf8

验证要点

  • 确认swaggerContent变量本身是有效的JSON,不存在未闭合的括号或引号
  • 检查PowerShell任务的脚本模式:若使用文件路径,需确保脚本内的变量引用方式正确

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 11:20:32