我对这里的提示非常绝望。这里是我的困惑: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