azure-devops - Azure Devops:将命令行任务的输出保存到要在另一个步骤中使用的变量中
问题描述
在 Azure Devops 中,我能够添加命令行任务。该命令行会产生一个我想要捕获的输出,并能够将其保存到一个变量中,如果可能的话,以便在以后的步骤中使用。
例如,考虑我的命令行任务只是在dir /b
产生以下输出的目录中列出文件
c:\temp\foo.txt
c:\temp\bar.exe
我想捕获上面列出的目录并在另一个 Azure Devops 任务中使用它们。
我怎样才能做到这一点?
解决方案
我想捕获上面列出的目录并在另一个 Azure Devops 任务中使用它们。
您可以使用脚本来获取任务输出。然后将输出设置为环境变量。
以下是命令行任务脚本:
SETLOCAL ENABLEDELAYEDEXPANSION
SET count=1
FOR /F "tokens=* USEBACKQ" %%F IN (`dir /b`) DO (
SET var!count!=%%F
SET /a count=!count!+1
)
echo "##vso[task.setvariable variable=testvar;]%var1%"
echo "##vso[task.setvariable variable=testvar1;]%var2%"
ENDLOCAL
您可以通过在以下任务中使用变量$(variable name)
。
例如:
echo $(testvar)
echo $(testvar1)
结果如下:
注意:dir /b
输出是多行值。但变量不支持多行值。
您可以将输出拆分为多个变量或连接成一个字符串。
连接成一个字符串
echo "##vso[task.setvariable variable=testvar;]%var1%;%var2%
希望这可以帮助。
推荐阅读
- python - 如何监听来自其他设备的 TCP 输入?
- html - 如果我不能使用单选组,如何将 Angular Material 单选按钮与表单控件相关联?
- kubernetes - kubernetes 没有到达内部注册表
- java - Jackson 如何处理映射冲突?
- git - 我将如何在 GIT 中保持本地更改进行 PULL
- java - android 中的 ApiException,状态码为 7,同时使用安全网认证 API
- java - 如何在同一循环中访问哈希图中的 2 个键?
- google-apps-script - 在应用程序脚本中使用标头发出 curl 请求
- python - 如何获取从方法返回的数据并再次在同一方法中使用它?
- javascript - 将 php 代码放入 yii 框架的 registerScript 中