在Azure DevOps的Build/Release管道运行时能否获取其所在文件夹路径?
解决方案
是可以在管道运行时获取到所属的文件夹路径的,分两种场景调用对应预定义变量即可:
- YAML构建/发布管道、经典构建管道:调用变量
Build.DefinitionPath,该变量会返回管道的完整层级路径,例如存放在Framework文件夹下的管道,返回值为\Framework - 经典发布管道:调用变量
Release.DefinitionPath即可获取路径
常见使用示例
1. 任务级条件执行
如果要仅给Framework文件夹下的管道执行特定任务,直接在任务中添加condition判断即可:
- task: PowerShell@2 inputs: targetType: 'inline' script: | Write-Host "仅Framework文件夹下的管道会执行该任务" condition: contains(variables['Build.DefinitionPath'], 'Framework')
2. 脚本中调用获取路径
如果需要在脚本逻辑中使用该路径,直接引用变量即可:
PowerShell脚本示例:
$pipelineFolderPath = "$(Build.DefinitionPath)" Write-Host "当前管道存放路径为:$pipelineFolderPath"
Bash脚本示例:
PIPELINE_FOLDER_PATH=$(Build.DefinitionPath) echo "当前管道存放路径为:$PIPELINE_FOLDER_PATH"
注意:路径的返回值开头会自带反斜杠,存放在根目录下的管道返回值为
\,写判断条件时可根据实际需求调整匹配规则。
内容的提问来源于stack exchange,提问作者InteXX
相关产品推荐
相关产品推荐

