我有一個文件對象列表,我想檢查一個給定的文件對象是否出現在該列表中。 -Contains
運營商幾乎是我正在尋找的,但似乎-Contains
使用非常嚴格的相等性測試,其中對象引用必須相同。有一些不太嚴格的選擇嗎?我希望以下代碼中的$boolean
變量第二次以及第一次返回True
。替代「-Contains」比較值而不是參考
PS C:\Users\Public\Documents\temp> ls
Directory: C:\Users\Public\Documents\temp
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 14.08.2017 18.33 5 file1.txt
-a---- 14.08.2017 18.33 5 file2.txt
PS C:\Users\Public\Documents\temp> $files1 = Get-ChildItem .
PS C:\Users\Public\Documents\temp> $files2 = Get-ChildItem .
PS C:\Users\Public\Documents\temp> $file = $files1[1]
PS C:\Users\Public\Documents\temp> $boolean = $files1 -Contains $file
PS C:\Users\Public\Documents\temp> $boolean
True
PS C:\Users\Public\Documents\temp> $boolean = $files2 -Contains $file
PS C:\Users\Public\Documents\temp> $boolean
False
PS C:\Users\Public\Documents\temp>
您使用的是什麼版本的PowerShell? –
'$ files2 = $ files1.Clone()'或使用'Where-Object' – wOxxOm
'[bool](Compare-Object $ files2 $ file -IncludeEqual -ExcludeDifferent)' – BenH