Powershell通过目录树搜索结合模式

时间:2015-08-27 13:56:26

标签: powershell

我需要通过Powershell搜索具有某些模式的目录树。我应该如何将所有模式放在一起,以便poweshell以递归方式搜索目录树。

起点:F:\生产

模式:

  1. 起始点的所有子文件夹,名为"存档"将会 排除。
  2. 如果子文件夹"全部"然后找到子文件夹" POM"在那里,如果存在。
  3. 然后找到子文件夹名称正好以" PML"开头。结束于" PROD" (PML **** PROD)如果存在于第2号。
  4. 然后找到子文件夹" xml"如果从3号出来。
  5. 输出数字4中的所有xml文件,除了" 00.xml"文件名和完整路径的文件。
  6. 使用此模式组合从起点循环遍历整个目录树。

    Starting Point:    F:\Production
    
    F:\Production
    |---AAA
    |    |___Archive
    |    |___80186
    |         |___All
    |              |___POM
    |                |___xxx
    |                |     |___PML*****PROD
    |                |         |___XML
    |                |              |___00.XML
    |                |              |___01.XML
    |                |              |___02.XML  
    |                |___yyy
    |                   |___PML*****PROD
    |                         |___XML
    |                              |___00.XML
    |                              |___01.XML
    |                              |___02.XML
    |___BBB
    |___CCC
    |___DDD
    

1 个答案:

答案 0 :(得分:1)

您已经确定了步骤(要使用的“算法”。)

现在,只需使用管道来实现它们:)

$XMLFiles = Get-ChildItem -Path $RootDir -Filter "POM" -Directory -Recurse | Where-Object {
    $_.Parent.Name -eq 'All' -and $_.FullName -notlike "*\Archive\*"
} | Get-ChildItem -Directory -Filter "PML*PROD" | Get-ChildItem -Directory -Filter "XML" | Get-ChileItem -Filter "*.xml" | Where {$_.Name -ne "00.xml"}