|
|
本帖最后由 likeyouli 于 2026-4-1 14:15 编辑
如题,也就是我要找文件夹,但这个文件夹里边必须包含5个以上的.xlsx文件。
研究了一下,everything好像实现不了这种功能,大神有能研究出来的吗?
用everything没研究出来,用powershell倒可以,唯一搜索效率没有everything高:
$rootPath = "D:\" # 修改为你要搜索的根目录
$extension = ".xlsx"
$minCount = 5
# 获取所有文件夹
Get-ChildItem -Path $rootPath -Directory -Recurse -ErrorAction SilentlyContinue | ForEach-Object {
$folder = $_.FullName
# 统计该文件夹直接包含的 .xlsx 文件数量(不包括子文件夹)
$count = (Get-ChildItem -Path $folder -Filter "*$extension" -File -ErrorAction SilentlyContinue).Count
if ($count -ge $minCount) {
Write-Host "[$count 个] $folder"
}
} | Out-Null
Write-Host "`n搜索完成!" -ForegroundColor Green
-------------------------------------------------------------------------------------------分割线------------
经过测试:多个盘符、多个文件类型,可以用如下方式:
$panfus = @("C:\","D:\", "E:\"); $extensions = @(".xlsx", ".xls"); $minCount = 5
foreach ($panfu in $panfus) {Write-Host "正在扫描 $panfu ..." -ForegroundColor green
# 收集所有文件
$allFiles = @()
foreach ($ext in $extensions) { $files = Get-ChildItem -Path $panfu -Filter "*$ext" -File -Recurse -ErrorAction SilentlyContinue; $allFiles += $files}
# 按文件夹分组统计
$allFiles | Group-Object DirectoryName |Where-Object { $_.Count -ge $minCount } | ForEach-Object {Write-Host "[$($_.Count) 个] $($_.Name)" }}
|
|