С Новым годом! Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.96/55: Рейтинг темы: голосов - 55, средняя оценка - 4.96
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 20

Удаление файлов и папок в сетевом обмене, кроме определенных

02.03.2018, 09:57. Показов 12200. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток друзья, есть сетевая папка для обмена файлами между пользователями нашего учреждения, со временем она забивается и её надо чистить. Для этого используется следующий скрипт
Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
@echo off
setlocal
set p=\\bsmp\obmen\
for /f "tokens=*" %%a in ('dir "%p%" /b /ad') do (
    for /f "tokens=*" %%b in ('dir "%p%\%%a" /b /ad') do (
        rd "%p%\%%a" /s /q
        md "%p%\%%a"
        )
)
del %p% /q
endlocal
exit
Данный скрипт заходит в папку, пересоздает все подпапки, удаляя все содержимое и удаляет все файлы находящиеся в корне, все очень хорошо, но если пользователи создают дополнительные папки в корне, то скрипт их не трогает.

Прошу помочь его усовершенствовать, что бы в корне он оставлял только 30 папок(они имеют вид: Кабинет 1, Кабинет 2 ... Кабинет 30) и файл Правила.txt

Добавлено через 11 часов 47 минут
Пока сделал полное удаление файлов и папок в данном каталоге и затем копирование их из другого места, но не совсем удобно реализовано, так как действие происходит в два этапа и в сети необходима папка с исходными данными, что не совсем удобно
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.03.2018, 09:57
Ответы с готовыми решениями:

Удалить все папки и файлы кроме определенных 2 папок и 2 файлов
Нужна помощь профессионалов ! Борюсь со скриптом bat Надо удалить все папки и файлы кроме определенных 2 папок и 2 файлов Вообщум...

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

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

14
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
03.03.2018, 05:41
Цитата Сообщение от Lofak Посмотреть сообщение
оставлял только 30 папок(они имеют вид: Кабинет 1, Кабинет 2 ... Кабинет 30) и файл Правила.txt
Windows Batch file
1
2
3
4
@echo off
for /f "delims=" %%a in ('dir /ad/b "."^|findstr /rv /c:"Кабинет 1[0-9]*" /c:"Кабинет 2[0-9]*" /c:"Кабинет 30"') do echo Удалить "%%a"
for /f "delims=" %%a in ('dir /a-d/b "."^|findstr /rv /c:"Правила.txt"') do echo Удалить "%%a"
pause
2
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 20
03.03.2018, 13:58  [ТС]
Цитата Сообщение от alpap Посмотреть сообщение
Windows Batch file
Благодарю, за скрипт, прошу по возможности разъяснить, как в нем прописать нужную директорию, что бы скрипт запускался с другой сетевой машины?
Если папка расположена по адресу \\192.168.2.4\obmen
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
03.03.2018, 17:49
Лучший ответ Сообщение было отмечено Lofak как решение

Решение

Цитата Сообщение от Lofak Посмотреть сообщение
как в нем прописать нужную директорию
Windows Batch file
1
2
3
4
5
6
7
8
@echo off
set "Nuzhndir=\\192.168.2.4\obmen"
 
pushd "%Nuzhndir%"
 Kod
popd
 
pause
1
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 20
03.03.2018, 21:16  [ТС]
Цитата Сообщение от alpap Посмотреть сообщение
Windows Batch file
Огромное спасибо, директорию указал, но удаление не работает, при запуске скрипта:


Windows Batch file
1
2
3
4
5
6
7
8
9
10
11
12
@echo off
 
set "Nuzhndir=\\192.168.2.4\obmen"
 
pushd "%Nuzhndir%"
 
for /f "delims=" %%a in ('dir /ad/b "."^|findstr /rv /c:"Кабинет 1[0-9]*" /c:"Кабинет 2[0-9]*" /c:"Кабинет 30"') do echo Del /f /q "%%a"
for /f "delims=" %%a in ('dir /a-d/b "."^|findstr /rv /c:"ПРАВИЛА.txt"') do echo Del /f /q "%%a"
 
popd
 
pause
в качестве результата выводится список лишних папок и файлов, но удаление не происходит:

Del /f /q "Кабинет.24"
Del /f /q "Лишняя папка"
Del /f /q "Лишний файл.xlsx"
Для продолжения нажмите любую клавишу . . .
Добавлено через 11 минут
Прошу прощения, не обратил внимания на код, все работает

Windows Batch file
1
2
for /f "delims=" %%a in ('dir /ad/b "."^|findstr /rv /c:"Кабинет 1[0-9]*" /c:"Кабинет 2[0-9]*" /c:"Кабинет 30"') do rd /s /q "%%a"
for /f "delims=" %%a in ('dir /a-d/b "."^|findstr /rv /c:"ПРАВИЛА.txt"') do del /s /q "%%a"
0
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 20
12.03.2018, 10:07  [ТС]
И все таки в процессе эксплуатации оказалось что скрипт не совсем то что нужно. Папки названия которых начинаются на символы ";" ":" он не находит и в самих папках информация не удаляется.
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
12.03.2018, 11:04
Цитата Сообщение от Lofak Посмотреть сообщение
названия которых начинаются на символы ";"
есть такое дело
замените в for:
Windows Batch file
1
for /f "delims= eol=" ...
Цитата Сообщение от Lofak Посмотреть сообщение
... ":" он не находит
здесь вы вероятно ошибаетесь, это недопустимый символ для имени и не может в нем присутствовать.
1
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 20
12.03.2018, 11:19  [ТС]
Цитата Сообщение от alpap Посмотреть сообщение
замените в for:
Благодарю, так находит, но функцию очистки содержимого папок, которые не удаляет, не выполняет. Это возможно реализовать?
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
12.03.2018, 19:30
Цитата Сообщение от Lofak Посмотреть сообщение
очистки содержимого папок, которые ...
пример, что именно не находит или не удаляет?
0
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 20
12.03.2018, 20:55  [ТС]
Цитата Сообщение от alpap Посмотреть сообщение
пример, что именно не находит или не удаляет?
Не удаляется содержимое папок, которые остаются Кабинет 1, Кабинет 2 ... Кабинет 30
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
12.03.2018, 23:56
Lofak,
я вас не просто не понимаю, а совершенно не понимаю
надо было удалить все кроме Кабинет 1, Кабинет 2 ... Кабинет 30, а теперь ... - очистить Кабинет 1, Кабинет 2 ... Кабинет 30 ?
тогда проще сделать полную очистку каждой, а потом ненужные удалить, а еще удобнее грохать вообще все что есть и создавать новую папку: Кабинет 1, Кабинет 2 ... Кабинет 30 по мере необходимости (появления файла).
0
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 20
13.03.2018, 16:29  [ТС]
Цитата Сообщение от alpap Посмотреть сообщение
а еще удобнее грохать вообще все что есть и создавать новую папку: Кабинет 1, Кабинет 2 ... Кабинет 30 по мере необходимости (появления файла).
Извиняюсь если не совсем правильно выразился, но нужно именно полностью очищать всю корневую папку, как в моем изначальном скрипте, но что бы подпапки кабинетов оставались, только сами подпапки, без содержимого, и файл правила.txt
0
4340 / 2130 / 661
Регистрация: 26.04.2015
Сообщений: 6,823
13.03.2018, 17:45
Lofak,
и в чем проблема все-таки ВСЕ удалить в папке (кроме правила.txt, есть такой код) и написать одну строку (находясь в к. папке):
Windows Batch file
1
md "Кабинет 1" "Кабинет 2" ... "Кабинет 30"
Добавлено через 2 минуты
ну для 30ти-то, конечно ...
Windows Batch file
1
for /l %%n in (1 1 30) do md "Кабинет %%n"
1
Почетный модератор
Эксперт по компьютерным сетямЭксперт Windows
 Аватар для magirus
28049 / 15785 / 983
Регистрация: 15.09.2009
Сообщений: 67,752
Записей в блоге: 78
13.03.2018, 18:06

Не по теме:

я вообще не понимаю, как можно имея три десятка кабинетов, видимо около сотни - полутора сотен компов а то и боле, не пользоваться правами NTFS, прелестями AD, квот на шары,
неужели так много денег на кроссовки новые есть ежемесячно?


Цитата Сообщение от Lofak Посмотреть сообщение
файл правила.txt
не имеет никакой силы, и на него изначально забили.
силу имеет приказ по предприятию, в котором всё расписано, и все пользователи ознакомлены под роспись.
0
0 / 0 / 0
Регистрация: 01.03.2018
Сообщений: 20
15.03.2018, 09:22  [ТС]
Цитата Сообщение от magirus Посмотреть сообщение

Не по теме:

я вообще не понимаю, как можно имея три десятка кабинетов, видимо около сотни - полутора сотен компов а то и боле, не пользоваться правами NTFS, прелестями AD, квот на шары,
неужели так много денег на кроссовки новые есть ежемесячно?

Суть немного в другом, работают люди достаточно пожилые и привыкли к такой системе обмена, если просто ограничить права и размер папок, то все будет воспринято в штыки, а многие просто не поймут и будут звонить и просить подойти что бы скопировать документ для передачи другому сотруднику. Поэтому было решено оставить данную папку как есть но предупредить всех под роспись что файлы в данной папке будут удаляться. Т.е. сделать своеобразную файловую помойку с временным хранением файлов для обмена между кабинетами. Для важных документов есть другие ресурсы.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.03.2018, 09:22
Помогаю со студенческими работами здесь

Robocopy перемещение файлов и подкаталогов кроме определенных
Здравствуйте! Есть папка 1 с подкаталогами (сетевая папка) Есть папка 2 с подгаталогами (тоже сетевая папка) нужно переместить из...

Запрет за выполнение exe и bat файлов кроме разрешонных папок
Приветствую! Не знаю куда запостить тут разделов очень много не есть гуд. Собственно как можно в Win7 да и xp сделать запрет на выполнение...

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

Удаление определенных файлов на всех дисках
Здравствуйте. Есть код: del 000.exe del 000.bat del lolka.exe del prosto_primer.exe Но эти файлы удаляются там, где сидит...

Удаление папок и файлов с выбором
Здравствуйте, прошу вашей помощи. У меня на диске C:\ постоянно собирается всякий хлам, папки, файлы,видео,музыка. Вопрос? Как создать BAT...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru