powershell 如何设置包含以下格式的日期的Azure DevOps Pipeline变量:25.07.2020

6mzjoqzu  于 2023-06-06  发布在  Shell
关注(0)|答案(3)|浏览(728)

我没有使用yaml,因为我的公司使用TFVC,所以我需要经典的方法。
使用$[pipeline.startTime]我得到了starttime,但现在我需要以这种方式格式化它:dd.MM.yyyy
VSO(TFS) - get current date time as variable中的powershellscript帮助了我,但直接在变量中设置日期是一种更简洁的方法。

xdnvmnnf

xdnvmnnf1#

如何设置Azure DevOps Pipeline变量,其中包含以下格式的日期:25.07.2020
由于您使用的是经典方式,构建管道中不支持嵌套变量。因此,我们不能使用像$(Get-Date -Format Date:MMddyy)这样的变量来设置日期时间。
我们只能像这样设置变量:

$[format('{0:ddMMyyyy}', pipeline.startTime)]

这样,我们就可以得到10072020,而不是没有.10.07.2020。我不能在ddMMyyyy之间添加任何间隔,Azure管道不支持它。
此外,作为解决方案,我们可以在选项选项卡中定义Build number格式,值为$(DayOfMonth).$(Month).$(Year:yyyy)

然后我们可以直接使用变量$(Build.BuildNumber)来获取日期时间:

希望这能帮上忙。

apeeds0o

apeeds0o2#

您可以使用表达式定义Azure DevOps Pipeline变量:https://learn.microsoft.com/en-us/azure/devops/pipelines/process/expressions?view=azure-devops它支持.NET自定义日期和时间格式说明符:

$[format('{0:dd}.{0:MM}.{0:yyyy}', pipeline.startTime)]
g2ieeal7

g2ieeal73#

@ChamindaC的回答启发了我的解决方案:

Write-Host "Setting up the date time for build variable"
$myDate=$(Get-Date -format yyyyMMdd-Hmmss)
Write-Host "##vso[task.setvariable variable=MyDate]$myDate"

然后在我的管道中,我可以引用$(MyDate)

对于您的特定日期格式,您可以这样做:

Write-Host "Setting up the date time for build variable"
$myDate=$(Get-Date -format dd.MM.yyyy)
Write-Host "##vso[task.setvariable variable=MyDate]$myDate"

相关问题