gpt4 book ai didi

string - PowerShell 字符串连接在函数内部和外部的行为不同

转载 作者:行者123 更新时间:2023-12-02 06:06:11 24 4
gpt4 key购买 nike

我在 PowerShell 中的字符串连接中看到了非常奇怪的行为。起初我使用 "$var1: Hello"字符串替换的语法,然后切换到简单的连接 +因为它不起作用。现在我注意到使用完全相同的赋值表达式,我得到两个不同的结果。

这对我来说感觉很糟糕,但我想确保我没有做错什么。

function Test-Diff([string] $sRepoGUID, [string] $sChangeset1, [string] $sChangeset2){
$url = $g_backendUrl + "repo/" + $sRepoGUID + "/diff/" + $sChangeset1 + ":" + $sChangeset2 + "?format=json&ignorews=True&maxsize=100000&timeout=10"
Write-Output $url
}

$g_backendUrl = "http://localhost:56783/"
$sRepoGUID = '34CAA433-1600-469E-95B7-35CA0A0FECF4'
$sChangeset1 = '9d21e91b213a07e56d16a9b8fe519ad570d5c46e'
$sChangeset2 = '68269169cdd0b803d0e419752ce9cae627e589e5'
$url = $g_backendUrl + "repo/" + $sRepoGUID + "/diff/" + $sChangeset1 + ":" + $sChangeset2 + "?format=json&ignorews=True&maxsize=100000&timeout=10"
Write-Output $url
Test-Diff($sRepoGUID, $sChangeset1, $sChangeset2)

将以下内容写入控制台:
http://localhost:56783/repo/34CAA433-1600-469E-95B7-35CA0A0FECF4/diff/9d21e91b213a07e56d16a9b8fe519ad570d5c46e:68269169cdd0b803d0e419752ce9cae627e589e5?format=json&ignorews=True&maxsize=100000&timeout=10
http://localhost:56783/repo/34CAA433-1600-469E-95B7-35CA0A0FECF4 9d21e91b213a07e56d16a9b8fe519ad570d5c46e 68269169cdd0b803d0e419752ce9cae627e589e5/diff/:?format=json&ignorews=True&maxsize=100000&timeout=10

注意第一个字符串如何包含 /diff/:在字符串中的正确位置。第二个字符串有空格,其中 /diff/:应该是,而是附加 /diff/:在最后一个连接变量之后。

我使用了完全相同的 $url = ...两个地方的表达式(我什至使用复制/粘贴来确定)。

我在 Windows 7 x64 上,并在两台不同的机器上进行了测试。

可能会发生什么导致这种行为?

最佳答案

我认为问题在于您将参数传递给函数的方式。看看这是否更有效:

Test-Diff $sRepoGUID $sChangeset1 $sChangeset2

关于string - PowerShell 字符串连接在函数内部和外部的行为不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9590041/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com