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

使用RestApi向Azure DevOps Repo添加含反斜杠文件失败求助

解决Azure DevOps Git Pushes API因反斜杠导致的400错误及PowerShell JSON转义问题

你的问题根源在于手动处理JSON转义时只覆盖了双引号,漏掉了反斜杠本身的转义——AssemblyInfo.cs里的反斜杠会破坏JSON结构,导致API返回400格式错误。另外原代码的循环处理逻辑也有问题:用-Raw读取的文件是单个字符串,foreach遍历会把它拆成单个字符处理,完全没必要。

直接用PowerShell内置的ConvertTo-Json处理内容转义,它会自动覆盖所有JSON规范要求的转义场景(包括反斜杠、双引号、换行符等),彻底避免手动转义遗漏的问题。修改后的函数如下:

function GetJSContentCS {
    param (
        [string]$filepath
    )
    # 读取完整文件内容,保留原始换行符
    $content = Get-Content -Encoding UTF8 -Raw -Path $filepath
    # 自动处理所有JSON转义,-Compress避免额外换行
    $jsonEscapedContent = $content | ConvertTo-Json -Compress
    # 移除ConvertTo-Json自动添加的首尾双引号,得到纯转义后的字符串
    return $jsonEscapedContent -replace '^"|"$', ''
}

GetJSContentCS -filepath 'C:\temp\AssemblyInfo (2).cs'

关键说明:

  • ConvertTo-Json是PowerShell原生的JSON合规处理工具,能精准处理所有需要转义的字符,比手动替换可靠得多。
  • 原代码里的-replace "(?s)rn\s*$"可以删除,ConvertTo-Json会自动处理末尾空白换行,保留原始内容的换行符更准确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 22:20:29