Нужен 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 чувствительны к регистру. |
Время: 10:01. |
Время: 10:01.
© OSzone.net 2001-