我對這裏的提示非常絕望。這裏是我的困惑:PowerShell與數組字符串元素匹配的奇怪行爲
首先,我有一個字符串數組,這是我創造了這個方式(顯示號碼的子集):
$a = @"
00013120747
00013051436
00013110491
00002100011
"@
$aa = $a.Split("`n")
接下來,我產生的所有用戶的Active Directory中的列表(使用ActiveRoles)這樣說:
$all_u = Get-QADUser -DontUseDefaultIncludedProperties -IncludedProperties Name,LogonName,EmployeeID -SizeLimit 0
現在,我爲什麼不能匹配反對$aa
數組的元素?例如,執行以下操作:
$all_u | where {$_.EmployeeID -match "00013110491"}
它的工作原理。但是,如果我執行以下操作:
$all_u | where {$_.EmployeeID -match $aa[2]}
它不起作用。
所以我做了一個簡單的測試:
$aa.GetType().Name
String[]
$aa[2].GetType().Name
String
$aa[2]
00013110491
$aa[2] -eq "00013110491"
False
什麼?這裏發生了什麼???順便說一下,我正在使用PowerShell ISE。
哇,很好找!我實際上嘗試了'foreach($ aa $ aa){「== {0} ==」-f $ elem}',並且每行不顯示任何尾部空格。謝謝你告訴我!標記你的答案。 – pepoluan