【发布时间】:2021-08-03 19:30:20
【问题描述】:
我正在尝试通过从 azure 管道传递变量来执行脚本。这是我的简单测试管道:
trigger:
- master
pool:
vmImage: 'windows-latest'
variables:
major: 1.2
minor: $[counter(variables['major'], 1)]
version: $[format('{0}.{1}', variables.major, variables.minor)]
name: $[format('{0} v{1}', 'Yaml Testing', variables['version'])]
steps:
- script: |
echo variables['version']
echo $(variables.version)
echo '$(variables.version)'
echo "$(variables.version')"
echo $[ variables['version'] ]
echo ${{ variables['version'] }}
echo $(Build.BuildNumber)
displayName: 'Run a multi-line script'
- script: $[format('{0} {1}', 'echo', variables['version'])]
displayName: 'Echo Formatted String'
脚本的输出是:
Generating script.
========================== Starting Command Output ===========================
##[command]"C:\windows\system32\cmd.exe" /D /E:ON /V:OFF /S /C "CALL "d:\a\_temp\3cb45b74-f6cd-4d2f-bf65-f635779b9d86.cmd""
variables['version']
$(variables.version)
'$(variables.version)'
"$(variables.version')"
$[ variables['version'] ]
$[format('{0}.{1}', variables.major, variables.minor)]
Yaml Testing v1.2.11
##[section]Finishing: Run a multi-line script
和
Generating script.
Script contents:
$[format('{0} {1}', 'echo', variables['version'])]
========================== Starting Command Output ===========================
##[command]"C:\windows\system32\cmd.exe" /D /E:ON /V:OFF /S /C "CALL "d:\a\_temp\5e42dc54-e027-4b9a-9af4-0db02e879b0f.cmd""
'$[format' is not recognized as an internal or external command,
operable program or batch file.
##[error]Cmd.exe exited with code '1'.
##[section]Finishing: Echo Formatted String
奇怪的是,代码在名称中可以正常工作,但在尝试在脚本中使用时却不行。
我做错了什么?
【问题讨论】:
-
该脚本除了获取脚本外,不是azure devops表达式。
-
我明白这一点。但是,真的不可能使用表达式构建该脚本,然后将其传递给执行吗?
-
我不认为这是可能的:/ 但我不确定......
标签: azure-devops azure-pipelines