PowerShell:查找子文件夹中没有文件的文件夹

时间:2017-02-14 07:59:59

标签: powershell directory

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

我有基于7号码创建文件夹树的脚本。让我们假设我们的数字是YYYYYYY然后我的文件夹层次结构就像(数字显示"层"文件夹)(抱歉称它为图层,因为我不知道正确的术语)

  1. YYYYYxx(不同项目最多可包含100个文件夹)
  2. YYYYYYY(此图层中的每个文件夹都具有相同的结构,因为它始终由单个项目组成)
  3. 子文件夹A
  4. 这个"层"有两个文件夹
  5. 这个"层"有项目文件
  6. "层" 1-3,没有文件。文件可能只在第5层。现在我需要制作一个脚本,显示哪些项目(2层)没有文件,只有空文件夹。

2 个答案:

答案 0 :(得分:2)

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

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

如果存在一个文件而不枚举整个结构,则使用流水线来停止处理。

答案 1 :(得分:0)

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

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

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