【问题标题】:Powershell - Using wildcards in path to search for filename in a specific subfolderPowershell - 在路径中使用通配符在特定子文件夹中搜索文件名
【发布时间】:2020-06-30 09:12:27
【问题描述】:

帖子的扩展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

如果我们在“路径”参数中有正确的文件夹树结构,我们可以检索 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"

但是如果

  • 你事先不知道文件夹树
  • 文件名未知(yml 扩展名除外) 您拥有的唯一信息是
  • 文件位于特定文件夹(即合同)中
  • 作为特定扩展名的文件(即 *.yml)

如下命令不起作用:

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

问候

【问题讨论】:

    标签: powershell wildcard get-childitem


    【解决方案1】:

    分两步:

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

    【讨论】:

    • 好的,谢谢。我也分两步完成了,但我正在寻找可能是不可能的最短命令:-)
    猜你喜欢
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 2014-12-09
    • 2017-01-28
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 2020-07-24
    相关资源
    最近更新 更多