Azure为变量添加前导空格
如果我在本地运行此powershell代码:Azure为变量添加前导空格,azure,powershell,Azure,Powershell,如果我在本地运行此powershell代码: $url = "refs/pull/5625/merge" $SourceBranchFromBuild = $url.split('/')[-1] $featureReleaseUrl = "http://$sourceBranchFromBuild.azurewebsites.net" Write-Output $featureReleaseUrl 输出为: 当我在Azure Powershell上运行此代码时: $url = "refs/p
$url = "refs/pull/5625/merge"
$SourceBranchFromBuild = $url.split('/')[-1]
$featureReleaseUrl = "http://$sourceBranchFromBuild.azurewebsites.net"
Write-Output $featureReleaseUrl
输出为:
当我在Azure Powershell上运行此代码时:
$url = "refs/pull/5625/merge"
$SourceBranchFromBuild = $url.split('/')[-1]
Write-Host "##vso[task.setvariable variable=prSourceBranchName;]"$SourceBranchFromBuild
然后在另一个Azure Powershell脚本中创建URL:
$featureReleaseUrl = "http://$env:prSourceBranchName.azurewebsites.net"
Write-Output $featureReleaseUrl
输出是
http://merge.azurewebsites.net
是什么导致了$env:prSourceBranchName中的前导空格字符?@PeterBoomsma请尝试将$SourceBranchFromBuild放在双引号内,如下所示:
Write-Host "##vso[task.setvariable variable=prSourceBranchName;]$SourceBranchFromBuild"
Azure没有添加任何内容-您的写入主机是 您的代码正在执行以下操作:
PS>$x=“xxx”
PS>写入主机“aaa”$x
aaa xxx
但想必你想要
PS>$x=“xxx”
PS>写入主机“aaa$x”
aaaxxx
请注意,在这两个示例中,第二个引号都是写入主机
。在第一个变量中,它位于$x
变量名之前。在第二分钟之后
在您的问题中,它称之为(变量名前加引号):
Write Host“##vso[task.setvariable=prSourceBranchName;”“$SourceBranchFromBuild
它将向日志文件写入一个,Azure DevOps将处理该文件并更新环境变量
您可能希望它将以下内容写入日志文件:
##vso[task.setvariable variable=prSourceBranchName;]merge
但它实际上是这样写的:
尝试将代码切换到此位置(即变量名称后的第二个引号):
它应该省略url中分支名称前面的空格。你的问题是什么?[grin]假设您只想删除前导空格,请使用修剪操作。至于为什么前面有空格,不知道:)如果我在azure中运行您的第一个代码示例,我就没有多余的空格了。
$env:prSourceBranchName
是否包含前导空格?@AdminOfThings否$env:prSourceBranchName
没有前导空格。在您看到的示例中,我对这两个示例使用相同的值(url、sourceBranchFromUrl)。唯一的区别是,在第二个示例中,我将值赋给Azure变量。@I.tdelinequent以编程方式删除前导空格并不困难,但它首先不应该在那里:)
##vso[task.setvariable variable=prSourceBranchName;] merge
Write-Host "##vso[task.setvariable variable=prSourceBranchName;]$SourceBranchFromBuild"