首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >任务自定义条件:给定的文件是否存在?

任务自定义条件:给定的文件是否存在?
EN

Stack Overflow用户
提问于 2019-03-01 02:08:40
回答 3查看 6.8K关注 0票数 11

我想要做的是

我有一个任务要执行,只有在某个配置文件存在的情况下才有意义。因此,如果该文件存在,我想对返回true的任务设置一个自定义条件。我想像这样的语法是有意义的:

代码语言:javascript
运行
复制
condition: exists('$(projectPath)\myconfigfile.xml')

这似乎是自定义条件的合理用例。

Microsoft文档

https://docs.microsoft.com/en-us/azure/devops/pipelines/process/expressions?view=azure-devops#functions

微软表示,以下功能始终可用:andcoalescecontainsendsWitheqformatgegtin、D12、D13、D14、D15、D16、D17、D18、D19。此外:

我的实际问题

我发现这有点令人沮丧。还有什么“其他功能”?我该如何研究它们呢?具体地说,有没有一个可以获取文件名并告诉我该文件是否存在的文件?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-03-01 02:12:31

没有内置的条件或函数可以在文件的存在或不存在的情况下运行。

您可以编写并运行设置变量的脚本,然后检查变量的内容。

票数 12
EN

Stack Overflow用户

发布于 2020-03-11 15:01:11

Daniel的回答是正确的,因此仅提供一个示例:

创建一个PowerShell任务来设置管道变量:

代码语言:javascript
运行
复制
$fileExists = Test-Path -Path "$(System.DefaultWorkingDirectory)/file.txt"
Write-Output "##vso[task.setvariable variable=FileExists]$fileExists"

创建在自定义条件中使用变量的辅助任务:

代码语言:javascript
运行
复制
eq(variables['FileExists'], True)
票数 38
EN

Stack Overflow用户

发布于 2020-09-09 02:43:47

这个技巧对我很有效,只需将文件复制到临时文件夹,如果它不存在,管道将被取消

代码语言:javascript
运行
复制
- task: CopyFiles@2
  inputs:
     sourceFolder: '$(projectPath)\myconfigfile.xml' 
     contents: '**/*' 
  targetFolder: '$(Agent.TempDirectory)'
  displayName: 'If file not exist, pipeline is cancel'
票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54931739

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档