Форум программистов, компьютерный форум, киберфорум
Batch (CMD/BAT)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/75: Рейтинг темы: голосов - 75, средняя оценка - 4.93
1 / 1 / 2
Регистрация: 01.04.2010
Сообщений: 46

Батник для удаления файлов из папки с фильтром

21.02.2014, 02:36. Показов 14736. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет всем!

Столкнулся с таким вопросом. Нужно написать для удобства батник, который будет чистить ВСЁ рядом с собой (папки и файлы) КРОМЕ файлов с определённым расширением.

Как такое реализовать? Нашёл следующее:
Удаление содержимое папки с подтверждением
Code
1
echo Y| del d:\file\
Слышал, что есть также цикл.

Вот как я вижу на ПСЕВДО-коде:

Code
1
FOR %%i in (ТЕКУЩАЯ ПАПКА) do (IF NOT РАСШИРЕНИЕ = *doc OR NOT РАСШИРЕНИЕ = *txt (echo Y| del d:\file\%%i))
Буду очень признателен за помощь. Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.02.2014, 02:36
Ответы с готовыми решениями:

Батник для удаления папки перед загрузкой windows 7
нужен батник для удаления папки перед загрузкой windows7 нужны такие действия, перед загрузкой windows7 спрашивает пароль если пароль...

Батник для удаления определённых файлов
Здравствуйте! в корне диска D каждый день создается батником файлы с текущей датой, то есть допустим, 18.01.2012, 19.01.2012...и так каждый...

Батник для удаления файлов не видит их
Написал батник для очистки папки скриншотов for /r screenshots %%i in (*.png) do del /s /f /q %%i в консоли он отображает ...

8
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
22.02.2014, 18:59
Так и есть. Все примерно выглядит, как Вы написали:

Bash
1
for %%i in ("%~dp0*") do if /i not "%%~xi"==".doc" if /i not "%%~xi"==".txt" del /F "%%~fi"
1
1 / 1 / 2
Регистрация: 01.04.2010
Сообщений: 46
26.02.2014, 00:49  [ТС]
Спасибо! Приведенный код работает, но есть маленькое НО! Возможно, я не уточнил.

Батник с этим кодом удаляет все ФАЙЛЫ которые лежат рядом с ним и САМ удаляется...

1. не нужно чтобы он удалялся
2. подскажите, что нужно добавить, чтобы удалять еще ВСЕ папки, которые лежат рядом?

Заранее спасибо.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
26.02.2014, 01:02
Сорри, должен был догадаться
Можно.

Bash
for %%i in ("%~dp0*") do if /i not "%%~xi"==".doc" if /i not "%%~xi"==".txt" if /i not "%%~fi"=="%~f0" del /F "%%~fi"
1
1 / 1 / 2
Регистрация: 01.04.2010
Сообщений: 46
26.02.2014, 01:08  [ТС]
Ага, 1-ая проблема решена - он не удаляется, а как быть со второй? с директориями?

и еще простите за наглость, можно ли еще добавить как-то маску по файлу, типа если содержит в имени, например "FC", то удалять, даже если формат "*.txt".

заранее спасибо
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
26.02.2014, 01:58
Цитата Сообщение от Serik2010 Посмотреть сообщение
удалять еще ВСЕ папки, которые лежат рядом?
тупо все без разбора?

Bash
1
rd /S /Q "%~dp0*"
только в корне C: не запустите, случайно !
Цитата Сообщение от Serik2010 Посмотреть сообщение
добавить как-то маску по файлу, типа если содержит в имени, например "FC", то удалять, даже если формат "*.txt".
Дописать еще такую строку:

Bash
1
del /F /A /Q "%~dp0*FC*"
Главное батник так не назвать

Добавлено через 3 минуты
P.S. приведенный ранее цикл не будет работать со скрытыми и системными файлами.

Добавлено через 5 минут
Цитата Сообщение от Dragokas Посмотреть сообщение
rd /S /Q "%~dp0*"
а стоп. Забыл. Она с масками не работает.
Так правильно:

Bash
1
For /D %%a in ("%~dp0*") do rd /s /q "%%a"
1
1 / 1 / 2
Регистрация: 01.04.2010
Сообщений: 46
26.02.2014, 02:01  [ТС]
Такс, теперь если подытожить. Получается код:
Bash
1
for %%i in ("%~dp0*") do if /i not "%%~xi"==".fits" if /i not "%%~xi"==".fts" if /i not "%%~xi"==".fit"  if /i not "%%~fi"=="%~f0" del /F "%%~fi" rd /S /Q "%~dp0*" del /F /A /Q "%~dp0*FCLT*"
это как он в действительности, не работает и не удаляет...

можно ли как-то улучшить код, чтобы хоть было понятно что куда относится. просто из логики я вижу так:

Bash
1
2
3
4
5
6
for %%i in ("%~dp0*") do (
del /F /A /Q "%~dp0*FCLT*"
       (if /i not "%%~xi"==".fits" if /i not "%%~xi"==".fts" if /i not "%%~xi"==".fit"  if /i not "%%~fi"=="%~f0" (
                del /F "%%~fi" rd /S /Q "%~dp0*")
       )
)
Добавлено через 1 минуту
Цитата Сообщение от Dragokas Посмотреть сообщение
For /D %%a in ("%~dp0*") do rd /s /q "%%a"

Т.е. это нужно добавлять отдельным циклом? а то я слегка уже запутался...

Подправьте пожалуйста мой код.
0
Эксперт WindowsАвтор FAQ
 Аватар для Dragokas
18030 / 7733 / 892
Регистрация: 25.12.2011
Сообщений: 11,502
Записей в блоге: 16
26.02.2014, 02:13
Лучший ответ Сообщение было отмечено Serik2010 как решение

Решение

Bash
1
2
3
4
5
@echo off
SetLocal EnableExtensions
for %%i in ("%~dp0*") do if /i not "%%~xi"==".doc" if /i not "%%~xi"==".txt" if /i not "%%~fi"=="%~f0" del /F "%%~fi"
For /D %%a in ("%~dp0*") do rd /s /q "%%a"
del /F /A /Q "%~dp0*FC*"
1
1 / 1 / 2
Регистрация: 01.04.2010
Сообщений: 46
26.02.2014, 02:17  [ТС]
Громаднейшее спасибо!!! Выручили! +1
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.02.2014, 02:17
Помогаю со студенческими работами здесь

Батник для копирования и удаления определенных файлов
Всем привет! Задача такая. Есть папка на диске С куда падают файлы разных мастей, в то же время в ней же лежат файлы которые переносить...

Батник удаления файлов во вложенных папках
Добрый день. Есть папка ГлавнаяПапка, в ней есть папки Папка1, Папка2, Папка3, Папка4 и т.д. В каждой из этих папок есть папка с таким же...

Реализовать загрузку всех файлов из текущей папки в соответствии с фильтром
Доброго времени суток. Столкнулся с такой проблемой. Использую OpenFileDialog() для открытия файлов. Как мне реализовать загрузку всех...

Батник для удаления
Доброго времени суток! Помогите написать батничек. Нужно сделать чтобы файлы с определенными расширениями удалялись из определенной папки....

Батник для удаления папок
Всем привет. Столкнулся со следующей проблемой: очень часто после обновлений на 10 винде в корне диска Ц появляются непонятные папки с...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
PowerShell Snippets
iNNOKENTIY21 11.11.2025
Модуль PowerShell 5. 1+ : Snippets. psm1 У меня модуль расположен в пользовательской папке модулей, по умолчанию: \Documents\WindowsPowerShell\Modules\Snippets\ А в самом низу файла-профиля. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru