Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Azure为变量添加前导空格_Azure_Powershell - Fatal编程技术网

Azure为变量添加前导空格

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

如果我在本地运行此powershell代码:

$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"