![]() |
Нужен bat-ник для поиска и удаления файлов и папок по части названия файла
Здравствуйте.
Нужен bat-ник для поиска и удаления файлов и папок по части названия файла. Подробнее: Есть папка к примеру E:\VW\6.Base_02.2015 (до 40 Гб файл) В ней куча файлов Скрытый текст
![]() Задача: Удалить из этой папки файлы которые содержат в названии символы "fr, da, it, es" ну и типа такого. Одним словом, мне нужно оставить файлы с языками это: ru-RU - русский, en-GB - английский (Великобритания), en-US - английский (США), de-DE - немецкий. С другими языками файлы удалить. Что то, найти в сети не могу что нибудь подобное... |
Поиск файлов которые мне не нужны, реализовал для пробы таким образом:
Код:
where /R E:\VW\6.Base_02.2015 *cs-CZ* *da-DK* *el-GR* *es-ES* *fi-FI* *fr-CA* *fr-FR* *hr-HR* *hu-HU* *it-IT* *ja-JP* *ko-KR* *nl-NL* *pl-PL* *pt-PT* *ro-RO* *sk-SK* *sl-SI* *sv-SE* *th-TH* *tr-TR* *zh-CN* *zh-TW* > %userprofile%\Desktop\loglist.txt Ищет команда правильно и все файлы какие надо. Как совместить поиск с удалением найденного? |
oniava, В папке Z:\Box_In\Manual (пропишите свой путь) для файлов по маске *.??-?? удалятся все файлы, кроме файлов с расширениями ru-RU en-GB en-US de-DE
Код:
@Echo Off |
:yahoo: :yahoo:
Цитата:
Думаю сделать так: Батник закидываем в папку с файлами и оттуда запускаем. Код:
@Echo off |
Цитата:
--------------------------------------------------------------------------------------------------- Папка ElsaWin и батник ElsaWin_Delit - копия.bat лежат на рабочем столе. Код:
@echo off При запуске вашего кода, с папкой ElsaWin ничего не происходит! Ваш код megaloman нечего не делает почему то! |
oniava, Выполните в командном окне
dir "%userprofile%\Desktop\ElsaWin" Там есть файлы? У меня, например, рабочий стол хранится в другом месте. Подозреваю, у Вас тоже, поэтому ничего не происходит. И вообще, плохая идея экспериментировать с удалением файлов на рабочем столе, это опасно. Создайте папочку где-нибудь на диске в другом месте. Для проверки поместите батник внутрь папки ElsaWin, которая у Вас на рабочем столе, и пропишите Set "BoxIn=%~dp0" Кроме того, я делал удаление только в указанной папке, подпапки не просматривал. Вот вариант, который для папки и всех её подпапок для файлов по маске *.??-?? удаляет все файлы, кроме файлов с расширениями ru-RU en-GB en-US de-DE
Код:
@Echo Off Кроме того, я уточнил маску файлов: вместо *..??-?? надо *.??-?? |
Цитата:
Скрытый текст
![]() У меня рабочий стол именно здесь Код:
%userprofile%\Desktop\ElsaWin Цитата:
Код:
@Echo Off |
Цитата:
Лог желательно на рабочий стол, что удали то хоть знать. |
oniava, Всё ясно, у Вас файлы с маской *.??-??.cab, а я делал для *.??-??. Необходима доработка.
Для папки без подпапок
Код:
@Echo Off Для папки с подпапками
Код:
@Echo Off |
Закинул в папку с файлами этот батник.
Цитата:
Del "C:\Users\Oleg\Desktop\ElsaWin\au.N.cs-CZ.cab" Del "C:\Users\Oleg\Desktop\ElsaWin\au.N.da-DK.cab" Del "C:\Users\Oleg\Desktop\ElsaWin\au.N.el-GR.cab" Del "C:\Users\Oleg\Desktop\ElsaWin\au.N.es-ES.cab" Del "C:\Users\Oleg\Desktop\ElsaWin\au.N.fi-FI.cab" Del "C:\Users\Oleg\Desktop\ElsaWin\au.N.fr-FR.cab" Del "C:\Users\Oleg\Desktop\ElsaWin\au.N.hr-HR.cab" Del "C:\Users\Oleg\Desktop\ElsaWin\au.N.hu-HU.cab" Del "C:\Users\Oleg\Desktop\ElsaWin\au.N.it-IT.cab" Del "C:\Users\Oleg\Desktop\ElsaWin\au.N.ja-JP.cab" Del "C:\Users\Oleg\Desktop\ElsaWin\au.N.nl-NL.cab" Del "C:\Users\Oleg\Desktop\ElsaWin\au.N.pl-PL.cab" Del "C:\Users\Oleg\Desktop\ElsaWin\au.N.pt-PT.cab" Del "C:\Users\Oleg\Desktop\ElsaWin\au.N.ro-RO.cab" Del "C:\Users\Oleg\Desktop\ElsaWin\au.N.sk-SK.cab" Del "C:\Users\Oleg\Desktop\ElsaWin\au.N.sl-SI.cab" Del "C:\Users\Oleg\Desktop\ElsaWin\au.N.sv-SE.cab" Del "C:\Users\Oleg\Desktop\ElsaWin\au.N.tr-TR.cab" Del "C:\Users\Oleg\Desktop\ElsaWin\au.V.cs-CZ.cab" Del "C:\Users\Oleg\Desktop\ElsaWin\au.V.da-DK.cab" Del "C:\Users\Oleg\Desktop\ElsaWin\au.V.el-GR.cab" и т.д. Второй код в батнике, вообще ничего не сделал и лог выдал пустой. Попробовал в разных кодировках ваш код в батника сохранять, но не в 866, не 1251 не работает ваш код... |
Подправил первую строку вашего кода:
Код:
@Echo Off Удалил все файлы почему то... |
Цитата:
Цитата:
Цитата:
Для большего контроля команду del в моих вариантах кода измените Del /F %1 2>&1 |
Здравствуйте megaloman.
После замены на Цитата:
(Вся проблема кода, была в команде на удаление) Код скрипта который использовал: Код:
@Echo Off Но удаление не полное, куча лишних файлов. Вот скрины оставшихся файлов. Скрытый текст
![]() Скрытый текст
![]() Скрытый текст
Скрытый текст
![]() Скрытый текст
![]() Скрытый текст
![]() Скрытый текст
![]() Скрытый текст
![]() Скрытый текст
В других папах, файлы могут быть другие, но языки оставить надо именно эти как в скрипте. |
Цитата:
Файлы в папке могут быть разного вида, примерно: saz.N.sv-SE.2CA.cab slp.V.sv-SE#graphics.cab slp.V.nl-NL.cab help..et-EE.cab hs2.N.fi-FI.cab saz.V.es-ES.7P5.cab saz..da-DK.2EE.5P3.cab saz.saz.da-DK.2EE.5P3.cab.da-DK.2EE.5P3.cab saz.saz..da-DK.2EE.5P3.cab.da-DK.2EE.5P3.cab saz.da-DK.cab и т.д. Перед языковыми символами, что спереди что сзади символов может быть ЧТО УГОДНО! {лабуда всякая}et-EE{лабуда всякая}.cab Я даже не знаю что именно, это как сервер мне пришлет... |
По маске {лабуда всякая}.??-??.{лабуда всякая}.cab удаляются все файлы, кроме исключений
Код:
@Echo Off |
А примерно такие то же удалит?
control#51.xml delConfigItem.js elfi.cab slp.V.#graphics.17.cab |
oniava, Мы разговаривали о файлах типа {лабуда всякая}.??-??.{лабуда всякая}.cab
Файлы с иными масками команды удалять не поступало. Что Вам точно надо? Если надо угрохать все файлы, кроме исключений, укажите маску Set "Mask=*.*" Опишите при этом в батнике корректно путь к папке и, не дай бог, не ставьте батник внутрь этой папки - батник убьет сам себя. И, если можно, окружите скрины в Ваших постах тегом Spoiler /Spoiler, тяжело читать тему. |
Цитата:
Сейчас опробую Ваш скрипт. На копирование Папки для "опробования скрипта", много времени уходит... |
Цитата:
Некоторые остаются. Маска поиска не подходит похоже. slp.N.es-ES#graphics.cab www..hr-HR#llf.cab и т.п. Скоро докачается новый архив у меня, попробую такой вот код: Код:
Set "BoxIn=%~dp0" |
oniava, как Вам уже сказали выше — убирайте большие скриншоты или их большое количество под тэг «spoiler».
Цитата:
Цитата:
|
oniava,
Вот вариант для нескольких масок.
Код:
@Echo Off |
Цитата:
Цитата:
Цитата:
Код:
:: Где ищем Языки меняются в папках и добавляются порой новые. Ладно, спасибо Вам megaloman БОЛЬШОЕ за помощь. Что нибудь придумаю. |
Может кому пригодится.
Вот этот скрип полностью на 100%, справляется с поставленной задачей: Код:
@echo off |
Цитата:
|
oniava,
Цитата:
вот это не может работать Код:
if not Defined "%%~nxf" Код:
@echo on Вот так Код:
@echo on Найдите отличия :) |
oniava, вообще такие вещи куда быстрее делать в полуавтоматическом режиме посредством файловых менеджеров. Например, в Far Manager'е можно использовать регулярные выражения в масках выделения или поиска, наподобие:
Код:
/^.*\.(?:cs-CZ|da-DK|el-GR|es-ES|…|zh-TW).*\.cab$/i |
Цитата:
Код:
@Echo Off |
Цитата:
|
А если требуется удалить не по названию файла, а по части названия песни? Например удалить все файлы где присутствует "fsx" "DAL" "fr" "es" "it" "de" Вручную фильтровать 10К файлов это слишком долго. Может есть более быстрое решение?
Фото-пример
![]() |
Есть.
Powershell + ExifTool Код:
$exiftool = 'C:\scripts\exiftool.exe' Значения в $regex чувствительны к регистру. |
Время: 11:50. |
Время: 11:50.
© OSzone.net 2001-