PowerShell 变量包含特定数字

Posted

技术标签:

【中文标题】PowerShell 变量包含特定数字【英文标题】:PowerShell Variable Contains Specific Numbers 【发布时间】:2015-12-11 16:49:14 【问题描述】:

场景

当我的变量(称为 $Numbers)包含 0、1 2 时,它将运行第一个 IF 语句下的任何内容。如果我的变量包含 0、1、2 3,它将运行另一个 IF 语句。

问题

我似乎无法让它工作,因为它连续运行第一个 IF 语句(由于仍然包含 0、1 和 2),但如果它不包含数字 3,则永远不会跳过它。

简要代码示例

If ($Numbers -contains "*0,*" -and "*1,*" -and "*2,*") 

    Write-Host = "Does not contain 3"



Elseif ($Numbers -contains "*0,*" -and "*1,*" -and "*2,*" -and "*3,*") 

    Write-Host "Contains 3"


感谢任何指导。

【问题讨论】:

如果$Numbers 是一个集合,则删除通配符。如果$Numbers 是字符串,请使用match io contains。在这两种情况下,正如 Maarten 所说,颠倒声明。 我真的很想看看 $numbers 是如何填充的或确切的内容。 ***.com/questions/18877580/… 【参考方案1】:

您的测试语法错误。

-Contains 将寻找完全匹配,而不是通配符匹配,而且每个 -and 条件必须是独立测试,例如

If ($Numbers -contains 0 -and $Numbers -contains 1 -and $Numbers -contains 2)

"1," 或 "2," 本身是非空字符串,并且将始终评估为 $true,没有应用任何类型的比较操作他们。

【讨论】:

【参考方案2】:

反转if语句,先测试0、1、2、3,在Elseif中测试0、1、2。您应该始终先测试更具体的情况。

【讨论】:

以上是关于PowerShell 变量包含特定数字的主要内容,如果未能解决你的问题,请参考以下文章

Power BI:如何合并特定表

允许 Power Query 同时包含文本和数字

Power Shell:需要在文件内容中放入文件具体名称

PowerShell ISE:调试从 power-shell 脚本调用的另一个 power-shell 脚本

根据 Power BI 中的 RLS 筛选值选择特定书签

Power Query - 删除包含小写字母的文本字符串