gpt4 book ai didi

powershell - 字符串扩展正在改变顺序或字符串

转载 作者:行者123 更新时间:2023-12-03 17:44:14 25 4
gpt4 key购买 nike

我试图在字符串中进行一些正常的变量扩展,当它在函数中时,它会乱序出现。

function MakeMessage99($startValue, $endValue) { "Ranges from $startValue to $endValue" }

MakeMessage99(1, 100)

这会返回 Ranges from 1 100 to 然后它应该返回 Ranges from 1 to 100

最佳答案

powershell 中的函数不应使用圆括号括起参数。相反:

PS C:\> MakeMessage99 1 100
Ranges from 1 to 100

其中MakeMessage是你的函数,“1”是第一个位置的参数,“100”是第二个位置的参数。根据about_Functions_Advanced_Parameters :

By default, all function parameters are positional. Windows PowerShell assigns position numbers to parameters in the order in which the parameters are declared in the function.

Powershell 有多种方法来检查进入的输入。您可以将输入转换为数字类型。还有用于参数的内置验证方法可以防止将来出现此类错误。如果你真的想要一个整数,一个简单的转换会导致数组成为无效输入。例如:

function MakeMessage99 {
Param
(
[int]$startValue,
[int]$endValue
)

"Ranges from $startValue to $endValue"
}

您还可以探索范围验证(例如 [ValidateRange(0,100)])、模式验证(例如 [ValidatePattern("[0-9][0-9][ 0-9][0-9]")] 以验证四位数)或上面链接中列出的其他验证属性。

关于powershell - 字符串扩展正在改变顺序或字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18729158/

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