2017-05-21 32 views
-1

enter image description here有人可以解釋這個原因嗎?

這是我的代碼都$test$strstring是充滿字符串(你可以從截圖中看到)陣列,但是該方案顯示Object[]$testString[]$strlist,但字符串是相同的,所以什麼是「錯誤」結果的原因?

$list = Get-WmiObject -Class Win32_Product | ft -HideTableHeaders Name | 
     Out-String 
$list = $list.Split("`r") 
$test = gc C:\Windows\System32\test.txt 

其中經由$list | Set-Content test.txt獲得$test

+0

是'輸出 ' - {0} - ' -f $測試[1]'和' ' - {0} - ' -f $ strlist [1]'相同?是[char []] $ test [1] |的輸出%{[int] $ _}'和[char []] $ strlist [1] | %{[int] $ _}'相同? –

+0

是的,是的,但GetHashed代碼是不同的他們(我GOOGLE了一下,發現對於相同的字符串值,他們的哈希代碼必須是一樣的權利?) – Raf

+0

可能其中一個字符是不一樣的是其他只是看起來和霍歐曼一樣)? – 4c74356b41

回答

0

你創建這些對象的方式是不正確的,你依靠的是格式表的輸出,然後用`r分割,刪除一個字符。這意味着兩個字符串不一樣。看長度。

做到這一點的一種方式是:

$list= (get-wmiobject -Class win32_product).name 
$list | set-content d:\temp\test.txt 
$test= gc d:\temp\test.txt 

$list[0] -like $test[0] 
+0

非常感謝你 – Raf

相關問題