根据文件名数组搜索文件路径
Search File Paths Based on File Name Array
我的 PowerShell 脚本中有两个字符串数组:
$search = @('File1', 'File2');
$paths = @('C:\Foo\File1.pdf', 'C:\Foo\Bar.doc', 'C:\Foo\File2.txt');
如何从搜索数组中获取包含文件名的所有文件路径?这可以在管道中完成吗?
您可以使用 GetFileNameWithoutExtension 方法检索路径的文件名并使用 -in
过滤它们:
$paths | ? { [System.IO.Path]::GetFileNameWithoutExtension($_) -in $search }
如果您需要进行部分匹配,您可以这样做:
$paths | Where-Object {
$filename = Split-Path $_ -Leaf
$search | Where-Object { $filename -like "*$_*" }
}
我的 PowerShell 脚本中有两个字符串数组:
$search = @('File1', 'File2');
$paths = @('C:\Foo\File1.pdf', 'C:\Foo\Bar.doc', 'C:\Foo\File2.txt');
如何从搜索数组中获取包含文件名的所有文件路径?这可以在管道中完成吗?
您可以使用 GetFileNameWithoutExtension 方法检索路径的文件名并使用 -in
过滤它们:
$paths | ? { [System.IO.Path]::GetFileNameWithoutExtension($_) -in $search }
如果您需要进行部分匹配,您可以这样做:
$paths | Where-Object {
$filename = Split-Path $_ -Leaf
$search | Where-Object { $filename -like "*$_*" }
}