Bat удалить файлы по маске
P < путь >Путь, с которого начинается поиск. По умолчанию используется текущая рабочая папка (.)
/M < маска_поиска >Поиск файлов с помощью маски. Маска поиска по умолчанию "*"
/S Рекурсивное выполнение программы forfiles во всех подпапках, аналогично " DIR /S"
/C < команда >
Команда, которая выполняется для каждого файла. Строки команд необходимо заключать в прямые кавычки. Команда по умолчанию "cmd /c echo @file". Следующие переменные могут использоваться в строке команды:
@file | Возвращает имя файла |
@fname | Возвращает имя файла без расширения |
@ext | Возвращает только расширение имени файла |
@path | Возвращает полный путь к файлу |
@relpath | Возвращает относительный путь к файлу |
@isdir | Возвращает значение "TRUE", если типом файла является папка, и "FALSE" для файлов |
@fsize | Возвращает размер файла в байтах |
@fdate | Возвращает дату последнего изменения файла |
@ftime | Возвращает время последнего изменения файла |
Для включения специальных символов в строку команды следует использовать шестнадцатеричный код символа в формате 0xHH (например, 0x09 для табуляции, 0x22 - двойная кавычка). Перед внутренними командами CMD.exe необходимо ставить "cmd /c".
/D < дата >Выбор файлов, у которых дата последнего изменения больше или равна (+) либо меньше или равна (-) указанной дате при использовании формата "dd.MM.yyyy"; либо файлов, у которых дата последнего изменения больше или равна (+) текущей дате плюс "dd" дней либо меньше или равна (-) текущей дате минус "dd" дней. Допустимым числом дней "dd" является любое число в диапазоне 0 - 32768. "+" используется по умолчанию, если знак не указан.
/? или -? Вывод справки по использованию
Замечания по использованию FORFILES
На что хотелось бы сразу обратить внимание.
Параметр P - это именно путь к обрабатываемым файлам. И нельзя здесь писать по привычке заодно и маску файлов, например /p с:\tmp\*.tmp. Это неправильно! Для маски файлов существует отдельный параметр - M.
И это еще можно было бы понять, если бы в параметре M можно было бы перечислить несколько масок. Так нет же.
И раз уж речь зашла о масках - переменная @ext содержит расширение выбранного файла и может быть использована для обработки.
Примеры использования FORFILES
В простых случаях использование FORFILES дает мало преимуществ по сравнению с командой dir .
В следующем примере будут выведены все поддиректории, начиная с определенной в параметре P.
Учитывая некоторую . нестандартность параметров команды FORFILES, на мой взгляд, в простых случаях лучше использовать команду dir . По крайней мере, привычнее.
Наиболее часто используемый случай для команды FORFILES- удаление ( реже - копирование, перемещение ) файлов старше определенной даты.
Так же просто решается задача обработки файлов, старше определенного количества дней.
В приведенном выше примере все файлы текущей папки дата создания (изменения) которых больше 30 дней переносятся в архив.
Как вариант - обработка файлов с текущей датой создания (изменения).
Следующая популярная область применения FORFILES - обработка файлов в зависимости от их размера.
Не бесполезный пример. Позволяет провести аудит диска на предмет наличия "больших" файлов.
И еще один пример - поиск "маленьких" файлов, как вариант - нулевой длины.
FORFILES /P "%USERPROFILE%\Local Settings\Temporary Internet Files\Content.IE5" /S /C "cmd /c if @isdir==FALSE if @fsize == 0 del @path /q"
В приведенном выше примере использования FORFILES из папок временных файлов Internet Explorer удаляются файлы нулевой длины.
Если вы пользуетесь этим браузером и редко чистите кэш, то таких ненужных файлов там немало.
На основе предыдущих примеров использования FORFILES без труда можно написать пример очистки и от "старых" файлов, но корректнее это делать соответствующей оснасткой.
В качестве исполняемой команды допустимо использовать внешний bat файл, которому FORFILES может передавать параметры.
Так, в следующем примере для файлов с текущей датой создания (изменения) вызывается bat файл 1.bat, которому в качестве параметра передается имя файла. Т. е. 1.bat будет вызван столько раз, сколько найдется файлов, удовлетворяющих условию.
Несмотря на то, что такое использование может значительно расширять возможности FORFILES, использовать такой прием следует с осторожностью, так как это может значительно увеличить время обработки.
Несколько экзотический пример использование FORFILES. Просто показать возможности этой команды.
Мы рассмотрели примеры использования FORFILES.
На мой взгляд, несмотря на некоторую необычность параметров, эта команда стоит того, что бы уделить ей внимание.
Конфигурация компьютера | |
Процессор: 2 x Intel Xeon E5420 2,5 ГГц | |
Материнская плата: Supermicro X7DA8 (Chipset Intel® 5000X (Greencreek) + Adaptec AIC-7902B Ultra 320 SCSI) | |
Память: 2x2 Гб DDR2 ECC SDRAM | |
HDD: Seagate SCSI320: 3x74 Гб + 2x145 Гб | |
Видеокарта: NVIDIA GeForce 210 | |
Звук: Встроенная Realtek AC97 | |
Блок питания: Supermicro 420 Вт | |
CD/DVD: Sony-NEC Optiarc 7173A + Plextor PX760A | |
Монитор: NEC MultiSync LCD 2090UXi | |
ОС: XP + SP3 |
Petya V4sechkin,
Благодарю, действительно работает. Не знал, что для этого требуется всего лишь ключ /S.
А как аналогичным образом сделать поиск и удаление в конкретной папке всех подпапок, имеющих в своём названии *My_File, *My_File* или My_File* ?
P.S. Название темы для точности поправил.
-------
Свобода не означает вседозволенность.
Последний раз редактировалось Nun-Nun, 26-03-2011 в 17:02 .
Конфигурация компьютера | |
Процессор: 2 x Intel Xeon E5420 2,5 ГГц | |
Материнская плата: Supermicro X7DA8 (Chipset Intel® 5000X (Greencreek) + Adaptec AIC-7902B Ultra 320 SCSI) | |
Память: 2x2 Гб DDR2 ECC SDRAM | |
HDD: Seagate SCSI320: 3x74 Гб + 2x145 Гб | |
Видеокарта: NVIDIA GeForce 210 | |
Звук: Встроенная Realtek AC97 | |
Блок питания: Supermicro 420 Вт | |
CD/DVD: Sony-NEC Optiarc 7173A + Plextor PX760A | |
Монитор: NEC MultiSync LCD 2090UXi | |
ОС: XP + SP3 |
Попробовал - не работает. Дело в том, что подпапки с мною указанными названиями могут находиться не на первом уровне конкретной папки, а вложены глубже - ещё и в другие подпапки. Может в этом всё дело?
Как смог, своими кривыми ручками состряпал нечто подобное. Тапками не кидаться, автора комментария не устраивают батники с готовыми путями.
Код .bat файла с комментариями
Текст файла DF.txt, откуда берутся строки
Сразу оговорюсь, рекомендую пути копировать из адресной строки папки, ибо кодировка в блокноте отличная от OEM 866, и велик шанс кракозябров.
Имя файла представляет собой комбинацию имя.расширение. *.txt - все файлы txt, 1.* - все файлы с именем 1 с разными расширениями 1.jpg, 1.jpg, 1.jpg, 1.txt, 1.pdf и так далее.
Из системных папок файлы удаляются запуском под администратором.
Как это выглядит:
Файлом Make.bat автоматически генерируем файлы и папки в корне диска C:\
Нажимаем любую клавишу и:
Качать отсюда, если кого заинтересовало
P.S. В приоритетах я ставлю работу скрипта/программы, лишь потом красоту
Вам же PowerShell дали а вы делаете ЭТО…
Я стесняюсь спросить, но неужели в bat-файлах нельзя использовать циклы (хоть даже через goto)?
на это больно смотреть
Ты себя мучаешь.
В продолжение темы: написал что-то на подобии того что нужно автору, на повершелле, с гуем. 2 текстовых конфига: в одном задаются пути, в другом расширения.
Код, скомпилированный exe и образцы текстовых конфигов по ссылке. Да кстати, собиралось это на Powershell Studio 2015.
Молодец! Держи настрой и однажды заткнешь всех нас комментаторов!
А комментаторам я скажу только одно - все когда-то начинали. Либо помогите советом, либо не мешайте.
Падение RuTube
Анекдот
Умер раввин, попал в рай, и спрашивает Бога:
— Господи, расскажи, как ты сотворил вселенную?
— Сингулярность, потом Большой Взрыв, экспоненциальное расширение. Физики ваши, в принципе, всё верно поняли.
— А как же ты сотворил всё живое?
— Ну как. Сперва абиогенез, потом мир РНК, дальше эволюция, клетки, потом многоклеточные организмы.
— А человека ты как сотворил, Господи?
— Слушай, это же ещё Дарвин описал. Сперва приматы, потом использование орудий, речь, прямохождение. Ты что, школу прогуливал?
— Господи, но ведь в Торе написано про семь дней, про сотворение человека из глины.
— А как бы ты сам, ребе, если бы оказался тогда на горе Синайской, объяснил бы безграмотным пастухам с бронзовыми мечами — про кварк-глюонную плазму, ДНК и естественный отбор?
Помните…
Дипломатия
Достойный ответ — польский журналист попытался спровоцировать российского посла Андреева, но проиграл в словесной схватке
— На вас кровь украинского народа, которую символизирует эта краска, как вы себя чувствуете?
— На мне сироп
— Но он символизирует кровь.
— Он символизирует инсценировку. Инсценировку тут и инсценировку в Буче
На кадрах — российский посол Сергей Андреев в Польше, на которого напали во время попытки возложить цветы на кладбище советских солдат и облили красной краской. После инцидента один из польских журналистов попытался спровоцировать дипломата, но не вышло — российский посол красиво «слил» репортера-провокатора.
Отношения
Viasat History, время офигительных историй
Только что на Viasat History посмотрел передачу про Наполеона, про его приход к власти и военные кампании, описали часть про вторжение Наполеона в Россию словами "Наполеон победил, но огромной ценой". Критерием победы Наполеона по версии Viasat History стало взятие Москвы. Про Бородино ни слова, французы умирали исключительно из-за голода и холода, про тактику выжженной земли ни слова. Окончательно добило меня продолжение этой саги, сразу после победного ухода Наполеона из России (1812 год) начали рассказывать про победу британцев над Наполеоном в битве при Ватерлоо (1815 год). Про штурм Парижа русскими войсками (1814 год!) и отречение от власти после этого Наполеона ни слова. Если в школах западных стран преподают историю в таком же ключе, то поведение западного политикума по отношению к России совсем не удивительно.
Если требуется удалить большое количество файлов по маске (например, с одинаковым расширением), во всех вложенных каталогах, как лучше, т.е. быстрее это сделать.
Есть два пути, как сделать это гораздо быстрее, чем удалять вручную по одному.
Первый способ основан на возможностях командной строки, а именно команды FOR с ключом /r. Необходимо перейти в каталог, во вложенных каталогах которого необходимо удалить файлы, и написать команду:
Вместо *.jpg можно подставить любую другую маску.
Если вместо (.) указать () , то можно обойтись и без перехода.
Запись "%~a\*.jpg" предназначена для имен папок и файлов, содержащих пробелы. Если все имена короткие и без пробелов, можно написать просто %a\*.jpg . Преимущество этого способа в возможности использования в командном файле, но для имен файлов с Unicode символами это не сработает.
Второй вариант основан на встроенной функции поиска и не требует использования командной строки.
В проводнике необходимо
- открыть папку, во вложенных папках которой требуется удалить файлы,
- ввести в поле поиска часть имени файла,
- в списке найденных файлов выделить их (Ctrl-A) и удалить (Del).
Получается, что в проводнике эта задача решается даже проще, чем в чистой командной строке, потому что не надо запоминать команду и синтаксис.
Но если использовать Far Manager, то поиск можно выполнить, как и в проводнике, надо лишь в окне поиска (Alt-F7) после получения результата нажать кнопку Панель (Panel в английской версии), и Far откроет временную панель с найденными файлами. Дальше можно выделить один или несколько файлов (Insert), или же все файлы (Ctrl-Num+), а затем удалить (F8), скопировать (F5) или переместить (F6).
You May Also Like
Цвет текста в консоли Win32
Дублирование вывода консоли в файл
Добавить комментарий Отменить ответ
Популярные записи
Определить IP адрес по MAC адресу через arp кеш в командной строке или bat файле
Расчет платежей ЖКУ в Excel за воду, электричество, газ по показаниям счетчиков
Расчет ДЧП в Excelс пересчетом суммы платежа и подсчетом процентов
Свежие комментарии
привет! А как скорость ему сетнуть!.bat files
Привет, Я разработал небольшой инструмент, который позволяет исправлять установленные голоса, чтобы сделать их доступными для механизма преобразования текста в речь…
спасибо за обратную связь
Разобрался. Птичий язык, это если не установлена русская локаль. У меня оборудование буржуйское, поэтому стоит локаль USA. Поменял на Русскую…
Столкнулся с чисткой архивов, а как-то лень ручками делать это .
Есть архивы вида arh_DD_MM_YY.rar , нужна удалить архивы с датой больше заданой.
Удаление файлов по маске по дате создания
Прошу помоч создать бат-файл удаление файлов по маске по дате создания. файлы могут находиться на.
Удаление файлов дата создания которых больше 4 дней
Подскажите что я не правильно делаю. Оно и удаляет файлы, на если файл создан например в 2002.
Удаление файлов по маске, переименование файлов, копирование фалов на ftp, выборка текста из файлов
Написал батник и макросы в excel который делает то, что перечислено в заголовке. Решил перевести.
Сравнение даты создания файла с заданной датой
Здравствуйте! Подскажите пожалуйста возможно ли решить мою проблему. Мне нужно отобрать файлы из.
Решение
Crazy Jack, дата создания архива совпадает с DD_MM_YY?
Добавлено через 32 минуты
Примечание:
1) Код сохраняем в кодировке OEM-866
2) Скрипт рекурсивно пройдёт по каталогу (можно убрать, для этого удалить параметр -recurse)
Решение
Просили же в батнике Да и PS по умолчанию выключен из коробки, а батники всегда работают.
Правильные файлы выводит?
Уважаемый, во-первых, решение предложено в виде батника, а, во-вторых, уже как несколько дней прошло с момента, как автор темы отметил мой ответ как решение. Ещё вопросы есть?
Ваша бурная фантазия доведёт Вас до греха. Учите матчасть
ZoOoO, Вы серьёзно или дурью маетесь? Скопируйте предложенный мною вариант решения, сохраните как батник и запустите. Результат Вас удивит
Да кто Вам такое сказал? Повторяю, учите матчасть или сейчас допрыгаетесь и получите отзыв за некомпетентность в вопросе
ЧО мне эти правила. Посмотрите название топика. В разделе для PS нада писать на PS.
Это тема про командную строку, которой с 2000г является PowerShell.
Cmd.exe является рудиментом, а его использование сам Microsoft считает атавизмом.
Не верите на слово - читайте по ссылкам.
Там наверху написано про, что тут говориться)
Вы написали, что я сильно удивлюсь если запущу ваш батник. Хотите сказать, что батник имеющий код PS, который в винде по умолчанию выключен и нада его включать, что бы пользоваться PS, отработает?
Вы написали, что я сильно удивлюсь если запущу ваш батник. Хотите сказать, что батник имеющий код PS, который в винде по умолчанию выключен и нада его включать, что бы пользоваться PS, отработает?
Хочу сказать, что PS, начиная с Vista в системе по умолчанию установлен. Касаемо батника я уже Вам сказал, попробуйте и убедитесь, что он работает, если Вы конечно не на XP сидите
Давайте так.
Если мы установили винду и захотели запустить командный файл написанный на PS, то он ен отработает, потому, что он по умолчанию отключен и что бы они работали, нада сначала включить эту функцию.
Давайте так.
Если мы установили винду и захотели запустить командный файл написанный на PS, то он ен отработает, потому, что он по умолчанию отключен и что бы они работали, нада сначала включить эту функцию.
1) Повторяю, по умолчанию в 3-х последних поколениях ОС Powershell по умолчанию включён
2) Командный файл, который я привёл в качестве варианта решения задачи лишь предусмтривает использование в себе powershell
Удаление файлов по маске
Подскажите как можно удалить файлы по маске? Пример: C:\first\*.xz C:\first\second\*.xzz.
удаление файлов по маске
необходимо удалить все *.txt файлы из директории D:\\ я нашел в инете код но у меня он не.
Удаление файлов по маске
Скажите как это.какой код писать
Удаление файлов по маске
День добрый. Помогите с батником: Удаление файлов по маске. Маска и путь задаются в батнике,так.
Удаление файлов по маске
ищу софтину, которая позволит удалять файлы по маске (особенно если у них разное имя). например.
Читайте также: