Что я хочу сделать:

  1. написать пакетный скрипт, чтобы сделать следующее
  2. цикл, хотя все каталоги начинаются с "01 -" ...
  3. Убедитесь, что папка "Изображения" пуста или нет. пропустить остальные папки
  4. Если папка "Изображения" пуста, то путь печати пустых папок "Изображения".

Пример вывода:

MainFolder/01-Folder3/Картинки пустые

Структура моей папки:

  1. 1-й уровень ... Каждая вещь внутри моего "MainFolder"
  2. 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-" и подпапку "Pictures". пропустить отдых.

1 ответ1

0
@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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .