Azure devops 如何在开发操作管道中访问Azure脚本btw Powershell中的变量
在我的yaml文件中,我定义了一些变量,通过将值设置为Azure devops 如何在开发操作管道中访问Azure脚本btw Powershell中的变量,azure-devops,Azure Devops,在我的yaml文件中,我定义了一些变量,通过将值设置为'$(月)和/或'$(年:yy),这些变量应该包含月份($MinorVersion)或年份($MajorVersion)。当我在任务脚本或任务powershell中打印它们时,它只显示'$(月)和/或'$(年:yy)。变量$(主版本)的预期输出当然是当前月份和年份09和20 有人能告诉我如何访问任务脚本/powershell中的变量$MinorVersion,以获取它的实际值吗?这就是文件内容: trigger: - master pool
'$(月)
和/或'$(年:yy)
,这些变量应该包含月份($MinorVersion)
或年份($MajorVersion)
。当我在任务脚本或任务powershell中打印它们时,它只显示'$(月)
和/或'$(年:yy)
。变量$(主版本)
的预期输出当然是当前月份和年份09
和20
有人能告诉我如何访问任务脚本/powershell中的变量$MinorVersion
,以获取它的实际值吗?这就是文件内容:
trigger:
- master
pool:
vmImage: 'windows-latest'
#import variable group resize-group, local variables are name/value pairs
variables:
- group: resize-group
- name: buildConfiguration
value: 'Release'
- name: appxPackageDir
value: '$(build.artifactStagingDirectory)\AppxPackages\\'
- name: MajorVersion
value: '$(Year:yy)'
- name: MinorVersion
value: '$(Month)'
- name: PatchVersion
value: 45
- name: RevVersion
value: '$(BuildID)'
- name: Packageappxmanifest
value: Package.appxmanifest
- name: PackageVersion
value: '$(MajorVersion).$(MinorVersion).$(PatchVersion).$(RevVersion)'
name: $(BuildDefinitionName)_$(MajorVersion).$(MinorVersion).$(PatchVersion)$(RevVersion)
steps:
- checkout: self
submodules: true
- script: |
echo %MinorVersion%
echo %variables.MinorVersion%
echo $($[variables.MinorVersion])
echo ${{ variables.MinorVersion }} # outputs initialValue
echo $(Month)
echo $(MajorVersion)
echo $(MinorVersion)
echo $(RevVersion)
echo $(PackageVersion)
echo $(Year:yyyy).$(Month).$(DayOfMonth)$(Rev:.r)
- powershell: |
Write-Host $env:MinorVersion
Write-Host $env:variables.MinorVersion%
Write-Host "$env:MY_MAPPED_PACKAGEVERSION"
Write-Host "$env:MY_MAPPED_REVVERSION"
输出仅显示变量的未计算内容:
有人能告诉我如何访问中的变量$MinorVersion吗
任务脚本/powershell以获取其实际值
Az devops没有此类系统变量或预定义变量,如$(年:yy)
和$(月)
。可用的预定义变量已定义,我们无法展开$(年:yy)
和$(月)
,因为它们不是预定义的。至于value:'$(BuildID)
,BuildID
的正确格式是$(Build.BuildID)
,而不是$(BuildID)
$(日期:yyyyMMdd)和$(版本:.r)
仅对内部版本号有效(名称
用于yaml管道)。所以普通变量不能扩展它们的值,只有name
元素才能识别它们。你应使用:
name:$(BuildDefinitionName)\u$(日期:yyyyMMdd)$(版本:.r)
而不是错误的格式:
name:$(BuildDefinitionName)\u$(主版本)。$(MinorVersion).xxx
获取/定义具有日期时间值的变量的变通方法:
虽然日期时间的变量没有预定义,但我们可以在步骤的开头放置一个PowerShell步骤来手动定义这些变量。您可以查看和以了解更多详细信息
因此,如果要定义与数据相关的变量,可以检查:
第二个PS任务的输出:
- task: PowerShell@2
inputs:
targetType: 'inline'
script: |
$year=$(Get-Date -Format 'yyyy')
Write-Host "##vso[task.setvariable variable=MajorVersion]$year"
$month=$(Get-Date -Format 'MM')
Write-Host "##vso[task.setvariable variable=MinorVersion]$month"
$day=$(Get-Date -Format 'dd')
Write-Host "##vso[task.setvariable variable=DayOfMonth]$day"
- powershell: |
Write-Host $(MajorVersion)
Write-Host $(MinorVersion)
Write-Host $(DayOfMonth)