Powershell-在路径中使用通配符在特定子文件夹中搜索文件名

时间:2020-06-30 09:12:27

标签: powershell wildcard get-childitem

帖子的扩展Powershell - using wildcards to search for filename

嗨,那里!

假设我们具有以下文件和文件夹配置:

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

如果“ Path”参数中的文件夹树结构正确,我们可以检索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”
  • 您事先不知道文件夹树
  • 文件名未知(yml扩展名除外) 您唯一的信息是
  • 该文件位于特定的文件夹(即合同)
  • 该文件为专用扩展名(即* .yml)

以下命令无效:

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

致谢

1 个答案:

答案 0 :(得分:0)

分两个步骤:

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