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

Gitlab CI执行命令时提示‘found unknown escape character’错误求助

解决GitLab CI配置的YAML转义错误

你的问题出在YAML对双引号字符串的转义规则上:YAML会解析双引号内的转义序列(比如\n、\t),而你命令里的\\c会被YAML当成尝试转义字符c,但\c并不是YAML支持的合法转义序列,所以触发了解析错误。

给你三个实用的解决办法:

办法一:用单引号包裹命令

单引号在YAML里表示纯字面量字符串,不会解析任何转义字符,直接保留原始内容:

script:
  - '& $env:P7_TESTING_INSTALLATION_PATH\client\p7batch.exe --log-level=error --run $env:CI_PROJECT_DIR\autotest\jobs\_clear.py'

办法二:替换反斜杠为正斜杠

Windows命令行和绝大多数Windows程序都支持用正斜杠作为路径分隔符,这样完全避开转义问题:

script:
  - "& $env:P7_TESTING_INSTALLATION_PATH/client/p7batch.exe --log-level=error --run $env:CI_PROJECT_DIR/autotest/jobs/_clear.py"

办法三:用双引号时转义所有反斜杠(不推荐,太繁琐)

如果一定要用双引号,需要把每个路径里的反斜杠写成两个反斜杠(YAML解析后会保留一个反斜杠),注意确保所有反斜杠都转义:

script:
  - "& $env:P7_TESTING_INSTALLATION_PATH\\\\client\\\\p7batch.exe --log-level=error --run $env:CI_PROJECT_DIR\\\\autotest\\\\jobs\\\\_clear.py"

推荐优先用前两种办法,更简洁不易出错。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 00:21:05