首页 > 解决方案 > Powershell - 在路径中使用通配符在特定子文件夹中搜索文件名

问题描述

Powershell的扩展 - 使用通配符搜索文件名

你好呀!

假设我们有这个文件和文件夹配置:

C:\temp\FolderLevel01\FolderLevel02\FolderLevel03\level03.txt
C:\temp\FolderLevel01\FolderLevel02\FolderLevel03\level03.yml
C:\temp\FolderLevel01\FolderLevel02\FolderLevel03\FolderLevel04\level04.txt
C:\temp\FolderLevel01\FolderLevel02\FolderLevel03\FolderLevel04\level04.yml
C:\temp\FolderLevel01\FolderLevel02\FolderLevel03\FolderLevel04\Contract\contract.txt
C:\temp\FolderLevel01\FolderLevel02\FolderLevel03\FolderLevel04\Contract\contract.yml

如果我们在“路径”参数中有正确的文件夹树结构,我们可以检索 contract.yml 文件:

Get-ChildItem "C:\temp\FolderLevel01\FolderLevel02\FolderLevel03\FolderLevel04\Contract\" -Include "*.yml" -Recurse
Get-ChildItem "C:\temp\FolderLevel01\*\*\*\Contract\" -Include "*.yml" -Recurse
Get-ChildItem "C:\temp\FolderLevel01\*\*\*\Contract\*.yml"

但是如何检索“Contract\*.yml”如果

如下命令不起作用:

Get-ChildItem "C:\temp\FolderLevel01\" -Include "Contract\*.yml" -Recurse

问候

标签: powershellwildcardget-childitem

解决方案


分两步:

$folder=(Get-ChildItem .\FolderLevel01\\Contract -Recurse)
$file=(Get-ChildItem ($folder.FullName + '\*.yml'))

推荐阅读