在PowerShell中的集合中查找项

在PowerShell中的集合中查找项,powershell,Powershell,我有一个包含以下数据的文本文件: 1390 resource core\scripts\script.properties 1395 resource core\scripts\script.xml 1396 resource core\scripts\script_customer.xml ... 等等 我还有一个参数列表,例如file1.txt,file2.txt,等等 我想做的是根据给定的文件名提取数字id(如果存在) 我编写了以下代码将文件内容读入集合: $regex = "^(?&l

我有一个包含以下数据的文本文件:

1390 resource core\scripts\script.properties
1395 resource core\scripts\script.xml
1396 resource core\scripts\script_customer.xml
...
等等

我还有一个参数列表,例如
file1.txt
file2.txt
,等等

我想做的是根据给定的文件名提取数字id(如果存在)

我编写了以下代码将文件内容读入集合:

$regex = "^(?<code>\d+)\s+(?<descriptor>\w+)\s+(?<filename>.*)$"

$results = Get-Content .\resources.txt |
   ForEach-Object {
      if ($_ -match $regex) {$matches} else { return }
   } | 
   select –Property @{name='code';       expression={$_.code} },
                    @{name='descriptor'; expression={$_.descriptor} },
                    @{name='filename';   expression={$_.filename} }
试试这个(PSv3+):

$results |其中对象文件名-匹配$arg |选择对象-展开代码

from arg in args
from result in results
where result.fileName.Contains(arg)
select result.code