首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在PowerShell函数参数中包含逗号?

如何在PowerShell函数参数中包含逗号?
EN

Stack Overflow用户
提问于 2022-02-04 06:11:47
回答 1查看 262关注 0票数 3

我有以下PowerShell函数,其中我正在验证参数是否是一个数字,或一组由逗号分隔的数字,或一系列数字。

代码语言:javascript
运行
复制
function CheckUpkeep() {
    Param(
        [ValidatePattern("\d+(,|-\d+)*")]
        [Parameter(Mandatory = $true, Position=0)]
        $ID
    )
    Write-Output "ID: $ID" 
}

调用它的有效方法的示例如下:

代码语言:javascript
运行
复制
CheckUpkeep 1
CheckUpkeep 1-10
CheckUpKeep 1-3,5-10

1-10例

输出:

ID: 1-10输出1-3,5-10箱:

编号: 1-3 5-10

如何更新regex,以便捕获逗号,而不必在调用函数(CheckUpkeep " 1-3,5-10 ")时使用字符串引号(无论是单引号还是双引号),以便在调用1-3、5-10情况下:

代码语言:javascript
运行
复制
CheckUpkeep 1-3,5-10

产出如下:

ID: 1-3,5-10

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-02-04 08:05:41

问题不是如何包含逗号,而是如何在处理后再次输出逗号。

由于您不想添加引号,所以我假设您也不想用反勾号(`)转义逗号。在没有引号或转义的情况下,逗号将告诉PowerShell将输入视为数组。这是正确的行为,imo,因为在此之后,您可以直接处理数字集的数字,而无需自己解析逗号分隔的字符串。

若要再次输出逗号,请更改以下行:

代码语言:javascript
运行
复制
Write-Output "ID: $ID"

到这一行:

代码语言:javascript
运行
复制
Write-Output "ID: $($ID -join ',')"

对于不包含逗号的输入,这也将正确工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70982129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档