как удалить и создать только определенную папку во всех подпапках - PullRequest
1 голос
/ 11 сентября 2011

Я хочу удалить только одну подпапку, эта подпапка представлена ​​во многих папках.

Например, у меня есть одна родительская папка Main source, а Main Source содержит более 100 подпапок.

В каждой папке есть несколько общих папок, таких как child_AB, child_BC.

Я хочу удалить все дочерние папки в подпапке «Родитель», используя командный файл.

Подскажите, пожалуйста, как это сделать?


Добавление примера

Родительская папка представлена ​​на диске D -> D:\Main_Source.

Main_Source содержит следующие папки

LDAP_A1
LDAP_A2
LDAP_A3
LDAP_A4
LDAP_A5
......
......
So on...

Каждая папка LDAP имеет child_AB и child_CD.

Я хочу удалить child_AB и child_CD в каждой подпапке.

Как удалить child_AB и child_CD в каждой подпапке с помощью командного файла?

Я новичок в пакетном кодировании файлов.

Ответы [ 2 ]

0 голосов
/ 12 сентября 2011

Запустите этот скрипт из каталога Main_Source:

for /F "delims=" %%a in ('dir /ad /b') do (
    if exist "%%a\child_AB" rd /s /q "%%a\child_AB" 
    if exist "%%a\child_CD" rd /s /q "%%a\child_CD"
)

Вы можете добавить echo команды для его отладки.

0 голосов
/ 11 сентября 2011

Попробуйте это:

@ECHO OFF
SET "rootdir=D:\Main_Source"
FOR /D %%A IN ("%rootdir%\LDAP_*") DO (
  FOR /D %%B IN ("%%A\*") DO (
    IF "%%~nxB"=="child_AB" ECHO RMDIR /S /Q "%%B"
    IF "%%~nxB"=="child_CD" ECHO RMDIR /S /Q "%%B"
  )
)

Внешний цикл итерирует по родительским подпапкам в корневой папке, внутренний - по дочерним родительским подпапкам.

Как видите, этотконкретный скрипт просто выводит список RMDIR команд вместо того, чтобы фактически выполнять их.Я бы порекомендовал вам сначала проверить пути, которые он создает, а затем удалить оба ключевых слова ECHO и запустить его снова, чтобы продолжить фактическое удаление.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...