如何循环遍历子文件夹来检查文件夹是否为空 - 批处理脚本?

如何循环遍历子文件夹来检查文件夹是否为空 - 批处理脚本?

我想做的事:

编写一个批处理脚本来执行以下循环,所有以“01-”开头的目录...检查“图片”文件夹是否为空。跳过其余文件夹如果“图片”文件夹为空,则打印空“图片”文件夹的路径。

输出示例:

MainFolder/01-Folder3/Pictures 为空

我的文件夹结构:

第 1 级...我的“主文件夹”中的每个东西 第 2 级...所有文件夹都以数字开头,例如:01、02、03 等... 第 3 级...有一个名为“图片”的文件夹...在每个第 3 级中,这里有一个例子:

|>MainFolder 
|--->01-Folder1
|------->Pictures
|----------->pic.png
|----------->SubPicFolder
|------->RandomFolder1
|------->RandomFolder2
|--->01-Folder2
|------->Pictures
|----------->SubPicFolder
|------->RandomFolder1
|--->01-Folder3
|------->Pictures
|------->RandomFolder1
|--->02-Folder1
|------->Pictures
|------->RandomFolder1
|------->RandomFolder1

我尝试过什么?:

@echo off
for /d /r %%A in ("Pictur*") do (
    dir /a /b "%%~fA" 2>nul | findstr "^" >nul || echo %%~fA
)
pause

我尝试过的问题:

此代码确实打印了所有空的“图片”文件夹,但问题是它检查了所有文件夹。我只想检查以“01-”开头的文件夹和子文件夹“图片”。跳过其余部分。

答案1

for dirname in `find ./ -type d | grep Pictures`; do if [ $(find $dirname -type f|wc -l) -eq 0 ]; then echo "$dirname is empty"; fi; done

将 find ./ 替换为 find $RootDir 进行搜索。

相关内容