【问题标题】:PowerShell: Finding folders with no file in subfoldersPowerShell:查找子文件夹中没有文件的文件夹
【发布时间】:2017-02-14 07:59:59
【问题描述】:

问题已重写,由于清晰度问题,无法删除。

我有基于 7 个数字代码创建文件夹树的脚本。假设我们的编号是 YYYYYYY,那么我的文件夹层次结构将类似于(编号显示文件夹的“层”)(抱歉称它为层,因为我不知道正确的术语)

  1. YYYYYxx(不同项目最多可以有 100 个文件夹)
  2. YYYYYY(这一层中的每个文件夹都有相同的结构,因为它总是由单个项目组成)
  3. 子文件夹 A
  4. 这个“层”有两个文件夹
  5. 这个“层”有项目文件

“层”1-3,从来没有文件。文件可能只在第 5 层。现在我需要制作脚本来显示哪些项目(第 2 层)没有文件,只有空文件夹。

【问题讨论】:

    标签: powershell directory


    【解决方案1】:

    PowerShell 3+ 具有 Get-Child-Item 的 -Directory 和 -File 参数。

    $L1withEmptyL2subfolder = dir $startFolder\*\* -Directory |
        Where { !(dir $_ -Recurse -File | select -first 1) }
    

    流水线用于在没有枚举整个结构的情况下甚至存在一个文件时停止处理。

    【讨论】:

      【解决方案2】:

      由于我不确定“空文件夹”是没有子目录的文件夹还是只有没有文件的文件夹,所以我发布了另一种查询可能性,它也涉及文件夹中的子文件夹。 这应该返回所有空目录:

      dir \*\* | ? { $_.PsisContainer } | ? {$_.GetFiles().Count -eq 0 -and $_.GetDirectories().Count -eq 0}
      

      GetFiles 检查目录中的文件,GetDirectories 检查子目录。

      【讨论】:

      • 文件夹的数量总是相同的,所以这对我来说无关紧要。但是我需要知道第 2 层的任何子目录中是否有任何文件。我的示例的 YYYYYYY
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-22
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 2015-04-10
      • 2020-11-05
      相关资源
      最近更新 更多