Powershell 检查号码是否属于列表
我想验证用户输入的号码是否属于预定义列表,但Powershell 检查号码是否属于列表,powershell,Powershell,我想验证用户输入的号码是否属于预定义列表,但-contains运算符的行为与我预期的稍有不同: 0 -contains 0. True 该列表是使用命令(获取磁盘).number生成的。对于输入0.,如何获取False?首先,您应该将(获取磁盘)的输出包装起来。使用@()对进行编号,以强制列表成为一个数组。然后,确保它是一个使用强制转换的字符串数组。最后,使用字符串传递要检查的数字: [string[]]$list = @((get-disk).number) # my list contai
-contains
运算符的行为与我预期的稍有不同:
0 -contains 0.
True
该列表是使用命令
(获取磁盘).number
生成的。对于输入0.
,如何获取False
?首先,您应该将(获取磁盘)的输出包装起来。使用@()
对进行编号,以强制列表成为一个数组。然后,确保它是一个使用强制转换的字符串数组。最后,使用字符串传递要检查的数字:
[string[]]$list = @((get-disk).number) # my list contains only 0
$list -contains "0." # False
双精度0。
等于int0
等于字符串“0”
,因此您必须将其作为字符串传递。0,00,000等仍返回true。我错过了带点的部分,抱歉。答案已更新。@PawełDyl否,这不起作用,因为get disk的返回值是一个UInt32数组,字符串“0”将被转换为0。您还可以使用(get disk).number.ToString()-包含“0”。