2016-07-28 44 views
1

我想OT驗證用戶輸入的號碼屬於一個預定義的列表,但-contains運營商的行爲稍有不同的比我預期:檢查了一些屬於列表

0 -contains 0. 
True 

與生成的列表命令(get-disk).number。我需要做什麼才能獲得False的輸入0.

回答

2

首先,您應該將(get-disk).number的輸出與@()包裝在一起,以強制將該列表作爲數組。然後,確保使用一個強制轉換的字符串數組。最後,傳給你想用一個字符串來檢查數量:

[string[]]$list = @((get-disk).number) # my list contains only 0 

$list -contains "0." # False 

0.是eqal爲int 0等於字符串"0"因此你可以把它作爲一個字符串。

+0

0.,00,000等仍然返回true。 – robert

+0

我錯過了與點的部分,對不起。答案已更新。 –

+0

@PawełDyl不,這是行不通的,因爲get-disk的返回值是一個UInt32數組和字符串「0」。將被轉換爲0 –