Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/18: Рейтинг темы: голосов - 18, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 13.08.2015
Сообщений: 26
1

Удаление всех файлов рекурсивно в папках с одной и той же структурой, кроме нескольких файлов

18.11.2019, 23:52. Показов 3329. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Имеется бэкап сайтов после переезда с сервера.
Можете помочь с реализацией
Имеется такая структура:
Код
C:/sites/site1/
C:/sites/test2/
C:/sites/web/
C:/sites/proverka/
C:/sites/dev/
C:/sites/hlam/
и прочие названия, но внутри из каждых из папок одна и та же структура.

Мне надо очистить по всем сайтам одни и те же папки кроме нескольких файлов, например:
Удалить всё в папках
Код
C:/sites/*/cache/images/
всё кроме
Код
index.htm (полный путь C:/sites/*/cache/images/index.htm)
index.html (полный путь C:/sites/*/cache/images/index.html)
.htaccess (полный путь C:/sites/*/cache/images/.htaccess)
и еще несколько подобных путей с такой же ситуацией:
Код
C:/sites/*/core/tmp/ кроме index.htm | index.html | .htaccess
C:/sites/*/core/backup/ кроме index.htm | index.html | .htaccess
Или может как то можно заранее задать названия файлов которые нельзя удалять и потом уже чистить по
C:\sites\*\cache\images\
C:\sites\*\cache\files\
C:\sites\*\cache\images\

Суть очистить одни и те же папки кроме нескольких файлов в папках которые имеют одну и ту же супругу.
Простите если как то не верно объяснил, а то меня бывает "заносит" когда пытаюсь изложить свою мысль и не знаю как более верно это сделать = (


PS: и дабы не плодить темы/посты, сможете подсказать как можно для этих же папок очистить одни и те же файлы (очистить содержимое файлов)?
Например очистить содержимое файлов:
Код
C:\sites\*\core\logs\error.log
C:\sites\*\core\logs\access.log
C:\sites\*\core\cfg\web.conf
во всех папках из sites/*
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.11.2019, 23:52
Ответы с готовыми решениями:

Удаление всех файлов в папках и под папках, кроме тех в которых в названии есть определенно слово
Всем привет, я так сказать чайник чтоле, я посерфил форум нашел пару похожих тем но всеже не то что...

Копирование файлов из одной папки в другую, но с пропуском одинаковых файлов в этих папках
Доброго времени суток. Прошу помощи в написании батника. Задача: Есть папка А с файлами 1,2,3 и...

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

Удаление всех файлов, кроме созданных последними 10-ти
Всем привет!Помогите пожалуйста сделать батничек, который будет удалять с папки D:\\1 все файлы, но...

8
4336 / 2126 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
19.11.2019, 01:47 2
kacergei, внизу страницы в "Похожие темы" все смотрели? Ничего не подошло?
0
734 / 332 / 134
Регистрация: 17.03.2014
Сообщений: 832
19.11.2019, 02:17 3
kacergei, попробуйте так:
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
@echo off
cls
SetLocal EnableExtensions
echo:...deleted ^& cleared
 
                            :: корневой каталог с бэкапом сайтов
set "root=c:\sites"
                            :: список НЕ удаляемых файлов
 
set "list4save=index.htm;index.html;.htaccess"
 
                            :: список файлов для очистки
 
set "list4clr=error.log;access.log;web.conf"
 
for /f "tokens=*" %%F in ('dir /a-d/b/s "%root%"') do call :check "%%F"
exit /b 0
 
:check
  title '%~1'
  echo:%list4save%;%list4clr%|find /i "%~nx1">nul || (>nul del "%~1" & exit /b)
  echo:%list4clr%|find /i "%~nx1">nul && (rem: CLEAR THIS FILE >"%~1")
  title .
exit /b
1
0 / 0 / 0
Регистрация: 13.08.2015
Сообщений: 26
19.11.2019, 02:46  [ТС] 4
Про файлы которые не должны удалять ясно)

-----
Мне надо очистить по всем сайтам одни и те же папки кроме нескольких файлов, например:
Удалить всё в папках
Код
C:/sites/*/cache/images/
и другие похожие пути
всё кроме
Код
index.htm (полный путь C:/sites/*/cache/images/index.htm)
index.html (полный путь C:/sites/*/cache/images/index.html)
.htaccess (полный путь C:/sites/*/cache/images/.htaccess)
-----


А где и как задать пути папок которые надо очищать?
0
734 / 332 / 134
Регистрация: 17.03.2014
Сообщений: 832
19.11.2019, 03:29 5
Цитата Сообщение от kacergei Посмотреть сообщение
А где и как задать пути папок которые надо очищать?
это разве не то?
Windows Batch file
6
7
                            :: корневой каталог с бэкапом сайтов
set "root=c:\sites"
0
0 / 0 / 0
Регистрация: 13.08.2015
Сообщений: 26
19.11.2019, 03:47  [ТС] 6
немного неверно меня поняли, хотя скорее я неверно объяснил
В папке sites много разных сайтов, но все они сделаны на одной и той же системе и структура файлов/папок у них одинаковая
Мне надо на всех сайтах очистить данные папки:
Код
C:\sites\*\cache\images\
C:\sites\*\cache\files\
C:\sites\*\cache\images\
Но файлы .htaccess | index.htm | index.html в этих папках не удалять

Можно ли задать конкретные папки которые надо чистить во всех сайтах?
sites - это каталог в котором разные название папок
но все сайты одинаковые и на каждом из-за сайтов надо очистить одни и те же папки
Как задать сразу несколько внутренних папок которые должны будут очищаться в папках каждого сайта
что бы при запуске очистила содержимое этих папок кроме ранее заданных файлов
C:\sites\site1\cache\images\*
C:\sites\site2\cache\files\*
C:\sites\othersite\cache\images\*
0
734 / 332 / 134
Регистрация: 17.03.2014
Сообщений: 832
19.11.2019, 05:36 7
Цитата Сообщение от kacergei Посмотреть сообщение
я неверно объяснил
it's right!
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
28
@echo off
cls
SetLocal EnableExtensions
echo:...deleted ^& cleared
 
                            :: список каталогов для анализа
                            :: через ; без завершающего \
 
set "list4check=d:\sites\web\cache\images;d:\sites\web3\cache\images"
 
                            :: список НЕ удаляемых файлов
 
set "list4save=index.htm;index.html;.htaccess"
 
                            :: список файлов для очистки
 
set "list4clr=error.log;access.log;web.conf"
 
for %%D in (%list4check%) do if exist %%D for /f "tokens=*" %%F in ('dir /a-d/b "%%D"') do call :check "%%F"
pause
exit /b 0
 
:check
  title '%~1'
  echo:%list4save%;%list4clr%|find /i "%~nx1">nul || (echo del "%~1" & exit /b)
  echo:%list4clr%|find /i "%~nx1">nul && (rem: CLEAR FILE >"%~1")
  title .
exit /b
1
0 / 0 / 0
Регистрация: 13.08.2015
Сообщений: 26
19.11.2019, 05:56  [ТС] 8
Почти)
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
28
@echo off
cls
SetLocal EnableExtensions
echo:...deleted ^& cleared
 
                            :: список каталогов для анализа
                            :: через ; без завершающего \
 
set "list4check=d:\sites\web\cache\images;d:\sites\web3\cache\images"
 
                            :: список НЕ удаляемых файлов
 
set "list4save=index.htm;index.html;.htaccess"
 
                            :: список файлов для очистки
 
set "list4clr=error.log;access.log;web.conf"
 
for %%D in (%list4check%) do if exist %%D for /f "tokens=*" %%F in ('dir /a-d/b "%%D"') do call :check "%%F"
pause
exit /b 0
 
:check
  title '%~1'
  echo:%list4save%;%list4clr%|find /i "%~nx1">nul || (echo del "%~1" & exit /b)
  echo:%list4clr%|find /i "%~nx1">nul && (rem: CLEAR FILE >"%~1")
  title .
exit /b
В
Windows Batch file
1
set "list4check=d:\sites\web\cache\images;d:\sites\web3\cache\images"
надо что бы папки из папки sites автоматически подставлялись исходя из тех что имееюся
d:\sites\*\cache\images;d:\sites\*\cache\images
0
734 / 332 / 134
Регистрация: 17.03.2014
Сообщений: 832
19.11.2019, 06:28 9
Цитата Сообщение от kacergei Посмотреть сообщение
надо что бы папки из папки sites автоматически подставлялись исходя из тех что имееюся
не-а, мне не надо
0
19.11.2019, 06:28
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
19.11.2019, 06:28
Помогаю со студенческими работами здесь

Удаление из папки всех файлов, кроме указанных
Дело вот какое. Попробую обстоятельно объяснить. Есть ПАПКА(корневая) содержит: **.bat файлы-...

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

Опрос папки и удаление из неё всех файлов кроме заданного расширения
При построении программы , вылезла проблема с бесконечным циклом, то есть , нужно вести опрос...

Удаление всех файлов в папке кроме созданных первого числа каждого месяца
Помогите создать bat/cmd файл, который бы удалял из определенной папки все файлы кроме файлов...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru