2015-12-30 106 views
1

我想檢查一個數組中是否存在元素。我想檢查數組中是否存在元素

$data = "100400296 676100 582" 
$i = "18320-my-turn-582" 
if ($data -like $i) { Write-Host "Exist" } 
else { Write-Host "Didn't exist" } 

這個例子不像我想要的那樣工作。 $i包含582,所以我希望它是Exist的結果。

回答

3

您的字符串"18320-my-turn-582"不存在於$data中,即使這兩個字符串都包含子字符串582

PowerShell將您的字符串視爲一個整體,並且不存在於100400296 676100 582中。要解決這一點,你可以:

使用正則表達式:

$i -match '\d+$' 
$data -match $Matches[0] 

斯普利特$i在連字符,所以你將有:

$i = $i -split '-' 
# turns $i into a array with the elements: 
# 18320 
# my 
# turn 
# 582 

$data -match $i[-1] 
# Output: 100400296 676100 582 

退房Get-Help about_Comparison_Operators明白之間的差別-Contains-Match-Like運營商。

+0

非常感謝您,將閱讀該鏈接,我很漂亮使用Powershell –