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

Azure Pipelines中使用ReplaceTokens时如何保留多行变量缩进

解决Azure Pipeline ReplaceTokens替换多行变量后缩进错误的问题

问题原因

ReplaceTokens任务默认仅替换占位符所在行的文本,多行变量中的后续行不会自动继承占位符所在行的缩进,导致只有首行格式正确,其余行顶格显示。

解决方案

方法1:启用ReplaceTokens的preserveTokenIndent参数(推荐)

在Azure Pipeline的ReplaceTokens任务配置中添加preserveTokenIndent: true,该参数会自动让替换后的每一行继承占位符所在行的缩进,无需修改变量内容。

任务配置示例:

- task: ReplaceTokens@5
  inputs:
    targetFiles: 'path/to/your/configmap.yaml'
    tokenPattern: 'default' # 匹配#{...}#格式的占位符
    preserveTokenIndent: true

方法2:手动为变量的每一行添加缩进

如果无法使用新版本的ReplaceTokens任务,直接修改Pipeline中的多行变量,确保每一行都带有ConfigMap中需要的缩进(示例中为4个空格)。注意YAML格式的正确性,内容行的缩进需统一:

variables:
  application.properties: |
      customMessage=This is dev machine
      customMessage2=This is dev machine2

方法3:用脚本预处理变量缩进

通过Bash或PowerShell脚本为变量的每一行添加指定缩进,再传递给ReplaceTokens任务。以Bash为例:

# 将环境变量中的多行内容添加4个空格缩进
INDENTED_PROPS=$(echo "$APPLICATION_PROPERTIES" | sed 's/^/    /')
# 将处理后的内容重新赋值给变量
echo "##vso[task.setvariable variable=application.properties]$INDENTED_PROPS"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 23:17:28