Пакетный поиск Windows, если заявление

Предположим, файловая система имеет следующий формат

Папка А
---> Папка 1
---> Папка 2
---> Папка 3 и т. Д.
Папка Б
---> Папка 4
---> Папка 2
---> Папка 3
Папка С
---> Папка 1
---> Папка 2
---> Папка 3
---> Папка 4

Мне нужно пройти на один уровень глубиной и только на один уровень и найти "Папка 1". Если папка 1 есть, удалите папку 2 и папку 3.

Я могу использовать пакетный файл Windows или другой язык программирования.

1 ответ

Решение

Следующий скрипт (или строка) проверит все каталоги в текущем каталоге на один уровень на наличие Folder1\NUL, известный уродливый трюк, чтобы отличить файлы от каталогов. Будьте осторожны с каталогами, которые содержат пробелы; они могут быть проанализированы как два отдельных места для rmdir нанести ему ущерб.

for /D %%i in (*) do (
    if exist .\%%i\Folder1\NUL (
        rmdir /S .\%%i\Folder2
        rmdir /S .\%%i\Folder3
    )
)
Другие вопросы по тегам