You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

递归遍历目录查找根目录含最多指定格式文件的文件夹

解决方案

以下是满足需求的简洁PowerShell代码,核心是仅统计每个文件夹自身直接包含的指定格式文件,而非递归统计整个子树的文件:

# 替换为你的根目录路径
$rootPath = "C:\Your\Root\Directory"
# 目标文件扩展名(统一小写适配Windows大小写不敏感特性)
$targetExtensions = @('.pdf', '.doc', '.docx', '.xls', '.xlsx', '.ppt', '.pptx')

# 遍历所有层级文件夹,统计每个文件夹的目标文件数量
$folderCounts = Get-ChildItem -Path $rootPath -Directory -Recurse | ForEach-Object {
    $directTargetFiles = Get-ChildItem -Path $_.FullName -File | Where-Object {
        $targetExtensions -contains $_.Extension.ToLower()
    }
    [PSCustomObject]@{
        Folder = $_.FullName
        Count  = $directTargetFiles.Count
    }
}

# 筛选出文件数量最多的文件夹(并列最多时返回全部)
$topFolder = $folderCounts | Sort-Object Count -Descending | Select-Object -First 1

# 输出结果
if ($topFolder.Count -gt 0) {
    "目标文件夹:$($topFolder.Folder)"
    "目标文件数量:$($topFolder.Count)"
} else {
    "未找到包含指定格式文件的文件夹"
}

关键说明

  • 避免递归统计文件:统计文件时未使用-Recurse参数,仅计算当前文件夹的直接子文件
  • 大小写兼容:将文件扩展名转为小写后匹配,避免因Windows文件系统大小写不敏感导致的漏统计
  • 灵活扩展:可直接修改$targetExtensions数组添加或移除需要统计的格式
  • 并列处理:如果有多个文件夹文件数量相同且最多,可替换筛选逻辑为$folderCounts | Where-Object { $_.Count -eq ($folderCounts | Measure-Object Count -Maximum).Maximum }来返回所有并列项

内容的提问来源于stack exchange,提问作者Synertry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 02:32:56