gpt4 book ai didi

Powershell if String.StartsWith() 多个字符串

转载 作者:行者123 更新时间:2023-12-04 12:32:02 27 4
gpt4 key购买 nike

我是 PowerShell 的新手,如果字符串不是以特定字符开头,我正在尝试运行一些代码,但是我无法让它处理多个字符。

这是工作正常的代码。

 if (-Not $recdata.StartsWith("1"))
{
//mycode.
}

但我想要的是像这样的多次检查

 if (-Not $recdata.StartsWith("1") -Or -Not $recdata.StartsWith("2"))
{
//mycode.
}

但这不起作用,它破坏了整个功能,即使 powershell 没有抛出任何错误。我尝试了很多东西,但我找不到任何解决方案

最佳答案

MundoPeter指出了您方法中的逻辑缺陷 - -or 应该是 -and - and Santiago Squarzon提供了基于正则表达式的 -match 运算符的替代方案。

让我提供以下 PowerShell 惯用的解决方案,利用 PowerShell 的运算符提供 negated 变体这一事实,只需在它们的名称前加上 not 即可:

$recdata[0] -notin '1', '2' # check 1st char of LHS against RHS array
$recdata -notlike '[12]*'   # check LHS against wildcard expression
$recdata -notmatch '^[12]'  # check LHS against regex

另见:

关于Powershell if String.StartsWith() 多个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68386403/

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