有以下数组。
$prefixes = 'abcdef, 123', 'xyx4, 222', 'bcde123$abc', .....
如何在文件夹下的列表中查找名称前缀的所有文件? (包括子文件夹)
答案 0 :(得分:3)
{一种选择:
$prefixes = @(
'abc',
'123',
'xyx',
'222',
'bcde'
)
[regex]$Prefix_Match = ‘(?i)^(‘ + (($prefixes |foreach {[regex]::escape($_)}) –join “|”) + ‘)’
Get-ChildItem -Path '<folder root path>' -Recurse -File |
where-object {$_.name -match $Prefix_Match}
答案 1 :(得分:1)
您可以在数组元素上使用Get-ChildItem
和[regex]::escape()
,同时向-Filter
参数添加通配符。
例如:
$array = @("file$1","file2")
foreach($element in $array) {
Get-ChildItem c:\temp -Filter ([regex]::escape($element) + "*") -Recurse -File
}
将查找文件夹c:\temp
中的所有文件以及以file$1
和file2