Форум программистов, компьютерный форум, киберфорум
Наши страницы
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/7: Рейтинг темы: голосов - 7, средняя оценка - 5.00
@Root
⁞ ★☭ Mad Max ☭★ ⁞
201 / 84 / 12
Регистрация: 04.09.2013
Сообщений: 187
1

Удаление вложенных каталогов и файлов согласно спискам

10.09.2013, 11:35. Просмотров 1262. Ответов 2
Метки нет (Все метки)

Прошу помощи. Задача такая:
Есть структура каталогов (во вложении)
Нужно
– во всех каталогах уровня 0 (Dir0№) удалить все каталоги (Dir1№), кроме тех, которые прописаны
в ..\Config\dir0_2inc.txt
– во всех оставшихся каталогах уровня 1 (Dir1№) удалить все каталоги, кроме тех, которые прописаны
в ..\Config\dir1_2inc.txt
– во всех оставшихся каталогах уровня 2 (a, b, c ...) удалить все файлы по маске (расширению), кроме тех, которые прописаны
в ..\Config\files_2inc.txt
Спасибо заранее.
0
Вложения
Тип файла: zip DirStruct.zip (453.7 Кб, 17 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.09.2013, 11:35
Ответы с готовыми решениями:

Удаление всех файлов и каталогов по списку
Создайте командный файл, который удаляет все файлы и каталоги, в заданных каталогах, указанные в...

Удаление файлов по нескольким маскам из нескольких каталогов
Помогите со скриптом. Задача следующая. Имеется некая программа к которой подключены базы данных....

Удаление в заданных каталогах всех файлов и каталогов, указанных в виде списка, занесенного в текстовый файл
Создайте командный файл, который удаляет все файлы и каталоги, в заданных каталогах, указанные в...

Удаление в заданных каталогах всех файлов и каталогов, указанных в виде списка, занесенного в текстовый файл
Создайте командный файл, который удаляет все файлы и каталоги, в заданных каталогах, указанные в...

Архивирование определённых файлов из разных каталогов с сохранением структуры этих каталогов
Здравствуйте. Суть задачи. Есть определенный каталог (C:\X), в котором в разных подкаталогах лежат...

2
Anonymоus
612 / 92 / 14
Регистрация: 15.08.2012
Сообщений: 62
10.09.2013, 15:56 2
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
@Echo Off
SetLocal EnableDelayedExpansion
 
Set DataRoot=Work
 
For /F "delims=" %%A In ('Dir "Config\*.txt" /B') Do (For /F "usebackq delims=" %%B In ("Config\%%A") Do (Set %%~nA=!%%~nA! "%%~B"))
 
For %%A In (!files_2inc!) Do (Set files_2inc=!files_2inc! .%%~A)
For /F "delims=" %%A In ('Dir "%DataRoot%" /A:D /B 2^>nul') Do (
    For /F "delims=" %%B In ('Dir "%DataRoot%\%%~A" /A:D /B 2^>nul') Do (
        Echo !dir0_2inc:^"='!|Find "'%%B'">nul&&(
            For /F "delims=" %%C In ('Dir "%DataRoot%\%%~A\%%~B" /A:D /B 2^>nul') Do (
                Echo !dir1_2inc:^"='!|Find "'%%C'">nul&&(
                    For /F "delims=" %%D In ('Dir "%DataRoot%\%%~A\%%~B\%%~C\*.*" /A:-D /B 2^>nul') Do (
::                      Именно здесь узкое место производительности скрипта, поэтому использование Find очень нежелательно.
                        If "!files_2inc!"=="!files_2inc:%%~xD=!" Del "%DataRoot%\%%~A\%%~B\%%~C\%%~D"
                    )
                )||(
                    RD /S /Q "%DataRoot%\%%~A\%%~B\%%~C">nul
                )
            )
        )||(
            RD /S /Q "%DataRoot%\%%~A\%%~B">nul
        )
    )
)
Pause&Exit
Здесь куча вложенных условий, поэтому комментарии к коду проставлять не стал, за исключением одного случая. Если вдруг что-то непонятно будет - спрашивайте.
1
@Root
⁞ ★☭ Mad Max ☭★ ⁞
201 / 84 / 12
Регистрация: 04.09.2013
Сообщений: 187
10.09.2013, 17:41  [ТС] 3
Anonymоus,
Спасибо огромное, работает.
Цитата Сообщение от Anonymоus Посмотреть сообщение
вдруг что-то непонятно будет - спрашивайте.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2013, 17:41

Заполнение одного каталога файлами из двух других каталогов согласно заданным условиям
Два каталога, содержащих файлы (*.txt) и не содержащие подкаталогов. (C:\WORK\OS\TEST\dir1 и...

Копирование файлов из разных каталогов в каталоги с именами, соответствующими номерам в именах файлов
Добрый день! Помогите решить проблему. Есть семь папок (cam_1, cam_2, cam_3 и.т.д) с фотографиями...

Рекурсивный обход дерева каталогов с изменением вложенных файлов
Нет ли у кого-нибудь желания написать скрипт для решения следующей задачи?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru