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

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

我想做的事:

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

输出示例:

MainFolder/01-Folder3/Pictures 为空

我的文件夹结构:

  1. 第一级……我的“MainFolder”里面的所有东西
  2. 第二级...所有文件夹都以数字开头,例如:01、02、03 等...
  3. 第 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

@echo off
for /f %%A in ('dir /a:d /b /s ^| find /i "01-" ^| find /i "pictur"') do (
echo checking %%A ...
dir /a /b "%%~fA" 2>nul | findstr "^" >nul || echo found empty: %%~fA
)
pause

相关内容