Как удалить файлы определенного типа из командной строки или bat-файла

Очень часто возникает необходимость удалить все файлы с определенным расширением в каком-либо каталоге (или в каталоге и во всех его подкаталогах). Например, если мы хотим удалить все текстовые файлы с расширением *.txt в папке (и всех ее подпапках) C:\texts , то можно выполнить следующую команду:
del /f /s /q C:\texts\*.txt
Где
/f — удаляет все файлы, даже если у них установлен атрибут только чтение
/s — удаляет файлы из всех подкаталогов (если это не требуется, то данный ключ нужно убрать)
/q — отключает запрос на подтверждение удаления файла
C:\texts — каталог, в котором будут найдены и удалены все файлы. Вместо определенной папки, можно указать весь диск целиком, тогда выглядеть это будет так: C:\*.txt
*.txt — тип файлов (расширение), которые будут удалены
Будьте аккуратны с ключем /q и типами удаляемых файлов. Команда удаляет, не спрашивая разрешения и при указании неправильного типа файлов может удалить лишнего.
Как удалить из папки все файлы определённого расширения?
Каким образом можно удалить из папки все файлы определённого расширения ?
-Jack-
Если кому пригодится вот что нашёл
var
FileName :TSearchRec;
r :integer;
begin
r := FindFirst('*.txt',faAnyFile,FileName);
if r = 0 then DeleteFile(FileName.Name);
while (FindNext(FileName) = 0) do
DeleteFile(FileName.Name);
end;
Похожие статьи
- Delphi: Вывести N директорий в заданной (без рекурсии вложенных папок)
- Удаление файла выделенного в ListBox
- Удаление файла без возможности восстановления
- Как проверить наличие файлов в папке мои документы?
- Вывести все файлы которые находятся во всех папках на диске C
- Как загрузить в Мemo список файлов в каталоге?
- Аналоги функций FindFirstFile, CopyFile, DeleteFile в Qt
- Посимвольное считывание файла, поиск цифр в текстовом файле на C# (си шарп)
- Чтение определенный строки из текстового файла
- Чтение бинарного файла не с начала файла, а с заданной позиции
Купить рекламу на сайте за 1000 руб
пишите сюда — alarforum@yandex.ru
Да и по любым другим вопросам пишите на почту
- Форум Web программирование (веб)
-
- Форум Python (питон)
- Форум PHP (пхп)
- Форум Perl (перл)
- Форум Ruby (руби)
- Форум JavaScript (яваскрипт)
- Форум Ajax (аякс)
- Форум SQL (эскюэл)
- Форум HTML (хтмл)
- Форум CSS (сиэсэс)
- Форум XML (иксмл)
- Форум JSON (джсон)
- Форум Pascal (паскаль)
- Форум Delphi (делфи)
- Форум C++ (си плюс плюс)
-
- Форум C++ Builder (си билдер)
- Форум Visual C++ (визуал си)
- Форум .NET (точка нет)
- Форум ASP.NET (асп нет)
- Форум Windows Forms (виндовс формс)
- Форум базы данных ADO.NET (адо нет)
- Форум .NET Framework WPF, UWP, WinRT, XAML ()
- Форум Java Android (джава андроид)
- Форум Java web (джава веб)
- Форум Kotlin (котлин)
- Форум Assembler (ассемблер)
- Форум WinApi (вин апи)
- Форум Excel (эксель)
- Форум Word (ворд)
- Форум Access (аксесс)
- Форум по администрированию ОС
- Форум по администрированию серверов и VDS
- Форум Windows
- Форум Ubuntu
- Форум Android
Как удалить все файлы определенного расширения
Сообщения: 681
Благодарности: 314Конфигурация компьютера
Процессор: AMD Ryzen 5 1600 Материнская плата: GIGABYTE B450M DS3H Память: Kingston ValueRAM [KVR24N17S8/8] 8 ГБ HDD: KINGSTON SV300S37A120G ATA 120ГБт SSD; SAMSUNG HD501LJ, SATA, 500ГБт; ST2000VM003-1CT164 ATA Device 2ТБт Видеокарта: GIGABYTE Radeon R7 250 1100Mhz PCI-E 3.0 2048Mb 1800Mhz 128 bit DVI HDMI HDCP Звук: Realtek ALC887 Блок питания: CoolerMaster MasterWatt Lite 600W, 2019 Монитор: Samsung SyncMaster 2443, 24» ОС: Windows 10 Pro 64Bit Папуас, обычный Total commander.
Самых очевидных путей решения 2 —
Вариант 1:
1. Заходим в вашу «корневую» папку
2. жмем alt+f7, в строке поиска вводим «|*.bmp» без кавычек (значок «|» рядом с клавишей backspace, он говорит о том, что ищем «все, кроме»)
3. жмем «поиск», после окончания поиска — кнопку «файлы на панель»
4. выделяем желаемые файлы, удаляем (видимо подпапки он тоже выведет, их удалять не следует)вариант 2 (для раскладки тотала от Samlab):ь
1. Заходим в вашу «корневую» папку
2. Жмем ctrl+b — на панель выводятся все файлы из подпапок
3. Дальше жмем ctrl+f12, вводим «|*.bmp», жмем ок (остаются видимыми только файлы, с расширением не bmp), жмем «*» — все файлы выделяются, жмем «delete»
4 Либо вместо пункта 3 жмем на дополнительной клавиатуре клавишу «+» — вводим «|*.bmp» жмем «ок» — выделяются все не бмп-шные файлы.Имхо вариант 2 более востребован, но тут вопрос личных предпочтений.
Это сообщение посчитали полезным следующие участники:
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.
Сообщения: 46
Благодарности: 0Сегодня обязательно проверю. Больше спасибо!
Сообщения: 46
Благодарности: 0Боже, как все просто и удобно Зря я не любил пользоваться сторонними файловыми менеджерами. Еще раз благодарю!)
Сообщения: 681
Благодарности: 314Конфигурация компьютера
Процессор: AMD Ryzen 5 1600 Материнская плата: GIGABYTE B450M DS3H Память: Kingston ValueRAM [KVR24N17S8/8] 8 ГБ HDD: KINGSTON SV300S37A120G ATA 120ГБт SSD; SAMSUNG HD501LJ, SATA, 500ГБт; ST2000VM003-1CT164 ATA Device 2ТБт Видеокарта: GIGABYTE Radeon R7 250 1100Mhz PCI-E 3.0 2048Mb 1800Mhz 128 bit DVI HDMI HDCP Звук: Realtek ALC887 Блок питания: CoolerMaster MasterWatt Lite 600W, 2019 Монитор: Samsung SyncMaster 2443, 24» ОС: Windows 10 Pro 64Bit Не стоит благодарности )))
Могу посоветовать использовать сборки Тотала с сайта samlab.ws — там очень грамотно настроены сочетания горячих клавиш. В настоящее время сборки не содержат вареза и насколько мне известно, являются легальными.Сообщения: 27449
Благодарности: 8086Цитата a_axe:
В настоящее время сборки не содержат вареза и насколько мне известно, являются легальными. » a_axe, а сам Total Commander, значится, стал бесплатным?
Перейти в папку. Нажать «Alt-F7» — поиск файла. Маска файлов: «*.*|*.bmp». «Alt-А» — снять флажок «[ ] Искать папки»:
╔════════════════════════════ Поиск файла ═════════════════════════════╗ ║ Одна или несколько масок файлов: ║ ║ *.*|*.bmp ↓║ ╟──────────────────────────────────────────────────────────────────────╢ ║ Содержащих текст: ║ ║ ↓║ ║ Используя кодовую страницу: ║ ║ Все кодовые страницы ↓║ ╟──────────────────────────────────┬───────────────────────────────────╢ ║ [ ] Учитывать регистр │ [ ] Искать в архивах ║ ║ [ ] Только целые слова │ [ ] Искать папки ║ ║ [ ] Искать 16-ричный код │ [ ] Искать в символических ссылках║ ╟──────────────────────────────────┴───────────────────────────────────╢ ║ Выберите область поиска: ║ ║ С текущей папки ↓ [ ] Использовать фильтр ║ ╟──────────────────────────────────────────────────────────────────────╢ ║ < Искать >[ Диск ] [ Фильтр ] [ Дополнительно ] [ Отмена ] ║ ╚══════════════════════════════════════════════════════════════════════╝
«Ctrl-Enter» — начать поиск. По завершении — нажать «Alt-л» или кнопку «Панель» для помещения найденных файлов на Временную панель:
╔═══════════════════ Временная панель [2] ═════╤════════╤═19:48 ║и Имя │Размер│ Дата │Время║ ║⌂.. │ Вверх│ │ ▲ ║ --mozilla-.xml │ 1489│03.09.09│17:06▓ ║ %%__Menu.reg │ 3252│05.11.10│02:13░ ║ %%__RestoreCmdLine │ 584│19.10.10│01:30░ ║ %%__RestoreCmdLine │ 584│19.10.10│01:30░ ║ %%__SaveCmdLine │ 648│19.10.10│01:30░ ║ %%__SaveCmdLine │ 648│19.10.10│01:30░ ║ .autoreg │ 1│25.11.10│22:41░ ║ .autoreg │ 1│14.02.11│00:49░ ║►_custombb.js │ 41522│22.03.08│23:48░ ║ _preview.html │ 12130│28.11.07│02:10░ ║ _preview.xul │ 7479│15.02.08│23:24░ ║►~firstrun.js │ 3905│23.03.08│01:38░ ║ 0000.hta │ 5826│18.06.07│00:55░ ║ 0000-2.hta │ 5883│23.11.10│09:01░ ║ 0001.ahk │ 62585│11.01.11│02:23░ ║ 0001.au3 │ 1333│17.03.11│17:27░ ║ 0001.au3 │ 1805│24.03.11│06:46░ ║►0001.cmd │ 971│23.11.10│07:52░ ║►0001.cmd │ 295│05.12.10│21:40░ ║►0001.cmd │ 166│11.01.11│21:38░ ║►0001.cmd │ 204│20.01.11│01:51░ ║►0001.cmd │ 252│22.01.11│07:46░ ║►0001.cmd │ 94│12.02.11│21:03░ ║►0001.cmd │ 513│16.02.11│13:50░ ║►0001.cmd │ 510│16.02.11│13:15░ ║►0001.cmd │ 235│20.02.11│22:00░ ║►0001.cmd │ 152│08.03.11│16:03░ ║►0001.cmd │ 187│20.03.11│03:40░ ║►0001.cmd │ 799│02.04.11│00:57░ ║►0001.cmd │ 1665│04.04.11│04:21░ ║►0001.cmd │ 88│03.05.11│22:04▼ ╟───────────────────────────────────────┴──────┴────────┴─────╢ ║⌂.. ║ ╚═══════════ 604,048,959 (13121) ═══ 4,424,003,584 ═══════════╝
По завершении помещения найденных файлов на Временную панель нажать «*» — выделить все файлы. Далее «F8» (в Корзину), або «Shift-Del» (мимо Корзины).
3 способа удалить все файлы в каталоге, кроме одного или нескольких файлов с расширениями
Иногда вы попадаете в ситуацию, когда вам нужно удалить все файлы в каталоге или просто очистить каталог, удалив все файлы, кроме файлов заданного типа (оканчивающихся определенным расширением).
В этой статье мы покажем вам, как удалять файлы в каталоге, кроме определенных расширений или типов файлов, с помощью команд rm, find и globignore.
Прежде чем мы двинемся дальше, давайте начнем с краткого рассмотрения одной важной концепции Linux — сопоставления имен файлов с образцом, которая позволит нам решить нашу проблему.
В Linux шаблон оболочки представляет собой строку, состоящую из следующих специальных символов, которые называются подстановочными знаками или метасимволами:
- * — соответствует нулю или более символов
- ? — соответствует любому одиночному символу
- [seq] — соответствует любому символу в seq
- [!seq] — соответствует любому символу, не указанному в seq
Здесь мы рассмотрим три возможных метода, в том числе:
Удаление файлов с помощью расширенных операторов сопоставления с образцом
Различные расширенные операторы сопоставления с образцом перечислены ниже, где список-шаблонов — это список, содержащий одно или несколько имен файлов, разделенных символом | :
- *(список-шаблонов) — соответствует нулю или более вхождений указанных шаблонов
- ?(список-шаблонов) — соответствует нулю или одному вхождению указанных шаблонов
- +(список-шаблонов) — соответствует одному или нескольким вхождениям указанных шаблонов
- @(pattern-list) — соответствует одному из указанных шаблонов
- !(список-шаблонов) — соответствует чему угодно, кроме одного из заданных шаблонов
Чтобы использовать их, включите параметр оболочки extglob следующим образом:
# shopt -s extglob
1. Чтобы удалить все файлы в каталоге, кроме имени файла, введите следующую команду:
$ rm -v !("filename")
2. Чтобы удалить все файлы, кроме filename1 и filename2:
$ rm -v !("filename1"|"filename2")
3. В приведенном ниже примере показано, как удалить все файлы, кроме всех файлов .zip , в интерактивном режиме:
$ rm -i !(*.zip)

4. Затем вы можете удалить все файлы в каталоге, кроме всех файлов .zip и .odt , следующим образом, отображая то, что сделанный:
$ rm -v !(*.zip|*.odt)

Получив все необходимые команды, отключите параметр оболочки extglob следующим образом:
$ shopt -u extglob
Удалить файлы с помощью команды поиска Linux
В этом методе мы можем использовать команду find исключительно с соответствующими параметрами или в сочетании с командой xargs, используя конвейер, как в формах ниже:
$ find /directory/ -type f -not -name 'PATTERN' -delete $ find /directory/ -type f -not -name 'PATTERN' -print0 | xargs -0 -I <> rm <> $ find /directory/ -type f -not -name 'PATTERN' -print0 | xargs -0 -I <> rm [options] <>
5. Следующая команда удалит все файлы, кроме файлов .gz в текущем каталоге:
$ find . -type f -not -name '*.gz'-delete

6. Используя конвейер и xargs, вы можете изменить приведенный выше случай следующим образом:
$ find . -type f -not -name '*gz' -print0 | xargs -0 -I <> rm -v <>

7. Рассмотрим еще один пример. Приведенная ниже команда удалит все файлы, кроме .gz , .odt и . .jpg файлы в текущем каталоге:
$ find . -type f -not \(-name '*gz' -or -name '*odt' -or -name '*.jpg' \) -delete

Удалить файлы с помощью переменной Bash GLOBIGNORE
Однако этот последний подход работает только с bash. Здесь переменная GLOBIGNORE хранит разделенный двоеточиями список шаблонов (имен файлов), которые следует игнорировать при раскрытии пути.
Чтобы использовать этот метод, перейдите в каталог, который вы хотите очистить, затем установите переменную GLOBIGNORE следующим образом:
$ cd test $ GLOBIGNORE=*.odt:*.iso:*.txt
В этом случае все файлы, кроме файлов .odt , .iso и .txt , будут удалены из текущего каталога.
Теперь запустите команду для очистки каталога:
$ rm -v *
После этого отключите переменную GLOBIGNORE:
$ unset GLOBIGNORE

Примечание. Чтобы понять значение флагов, используемых в приведенных выше командах, обратитесь к справочным страницам каждой команды, которую мы использовали на различных иллюстрациях.
Вот и все! Если у вас есть какие-либо другие методы командной строки для той же цели, не забудьте поделиться с нами через наш раздел обратной связи ниже.