View previous topic :: View next topic |
Author |
Message |
Andrey_A
Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
(Separately) Posted: Wed Jan 27, 2010 03:30 Post subject: Удаление файлов, в имени которых больше N символов |
|
|
Столкнулся с такой проблемой. В папке есть файлы, в именах которых разное количество символов. В одном случае необходимо удалить файлы, в именах которых больше 5 символов. В другом больше 4-х. Кстати переодически приходится сталкиваться с такой-же проблемой, но с расширениями.
Я раньше это делал с помощью поиска, а потом удалял... можно ли как упростить задачу? |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10284 Location: Россия, Саратов
|
(Separately) Posted: Wed Jan 27, 2010 09:19 Post subject: |
|
|
Andrey_A
Видимо, можно. Но прежде хотелось бы узнать, в чём состоит реальная необходимость этого. Конкретно. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
(Separately) Posted: Wed Jan 27, 2010 11:00 Post subject: |
|
|
Это во-первых. А во-вторых, что значит "упростить"? Не создавать? Опиши, что должно происходить в случае, если в эту директорию сам Тотал или сторонняя программа копирует файл с именем из 10 символов. Не давать копировать? Усекать имя? Выдавать сообщение? Удалять? _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10284 Location: Россия, Саратов
|
(Separately) Posted: Wed Jan 27, 2010 11:15 Post subject: |
|
|
Вахмурка
Вообще, как я понял (возможно, неверно), просто уже есть исходная папка с (с подкаталогами или без — пока неизвестно), файлы в которой зачем-то надо подвергнуть вивисекции. В плане хоть какого-то обоснования лично мне, кроме сохранения в папке только файлов, удовлетворяющих формату 8.3, ничего в голову не приходит. Но превышение 4 или 5 символов в имени? Это не говоря о том, что автоматизация данной процедуры потенциально опасна. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
Вахмурка
Joined: 27 Dec 2004 Posts: 2585 Location: Большая деревня Москва
|
(Separately) Posted: Wed Jan 27, 2010 11:36 Post subject: |
|
|
Так и я об этом. Если мне по каким-либо причинам нужно произвести "вивисекцию", то ничего более простого и быстрого, чем поиск с использованием плагина, который считает символы (таких много), или сортировке по пользовательским колонкам (что по сути то же самое), с последующим удалением, просто не существует.
Это все равно как спросить "Периодически в квартире появляется грязь, я ее убираю. А есть более простой способ?". Есть. Либо не жить там, либо не убирать, потому что грязь все равно будет! _________________ Сайт PowerPro+Total Commander
Скрипты PowerPro для Total Commander
* * *
«Не усматривайте злого умысла в том, что вполне объяснимо глупостью» (Р. Хэнлон) |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Wed Jan 27, 2010 11:37 Post subject: |
|
|
Чего набросились? Обычная рабочая ситуация: в папке лежат промежуточные результаты некой обработки файлов. Периодически часть из них становятся не нужны (уже обработаны и больше не понадобятся), вот их и нужно удалить.
Andrey_A, автоматически удалять я бы не решился — можно случайно перепутать фильтр для 4х- и 5и-символьных имён.
Но автоматизировать поиск можно: сделай и сохрани шаблоны поиска
Если я угадал с ситуацией, то советую давать результатам характерные имена, типа имяфайла.расширение.расширение (или префикс_имяфайла.расширение или имяфайла_постфикс.расширение)
Если обработка файлов происходит автоматически, то свяжи удаление с обработкой |
|
Back to top |
|
|
Andrey_A
Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
(Separately) Posted: Thu Jan 28, 2010 03:38 Post subject: |
|
|
Я,понимаю, что это кому-то не надо, но всё же подскажите каким плагином создать шаблон "Найти_имя_более_4-х_символов"
скрипт, хоть и не умею писать пришлось накрапать сравнить другие (наверно есть ошибки ):
Avada: Содержимое скрипта удалено. Пояснения — в моём посте.
Осталось дело за шаблоном |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Thu Jan 28, 2010 09:03 Post subject: |
|
|
Жмешь плюс на цифровой панели (если с подкаталогами, то предварительно Ctrl+B) и пишешь ?????*.* - это выделит файлы длиной 5 символов и больше. Т.е., больше 4-х. Для выделения файлов с длиной имени больше 5 добавь еще один вопросительный знак. Можно и через regexp - тогда шаблон выделения будет <^.{5,}\. (для файлов длиной от 5 символов, т.е. более 4 - для других задай сам другое число вместо 5). Если хочется написать командный файл, там можно использовать команду del с первым вариантом маски. Но судя по твоей заготовке командный файл тебе писать не хочется (хотя это проще и быстрее, чем то, что ты составил) - в общем, любой из шаблонов подойдет, хотя, наверное, первый быстрее (не требует regexp). Корректность скрипта я не проверял.
Кстати, если тебе нужно выделять только файлы, лучше использовать команду cm_SelectFiles, т.к. команда cm_SpreadSelection в зависимости от настроек ТК может выделять и подкаталоги. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
Avada
Joined: 01 Aug 2008 Posts: 10284 Location: Россия, Саратов
|
(Separately) Posted: Thu Jan 28, 2010 10:42 Post subject: |
|
|
Разрешите подвести некоторые итоги.
Tol!k спрашивал "Чего набросились?" Думаю, что вполне убедительным ответом на этот вопрос стал последующий пост автора темы. Человеку в несколько глоток говорили о сомнительности именно такой постановки задачи и о потенциальной опасности её реализации. В ответ — никаких разъяснений, а предупреждения просто игнорируются. И это, кстати, не первый случай. Обратите внимание на эту тему.
Batya wrote: | Не обижайся, но мне кажется, что твоё желание всё по максимуму автоматизировать стало приобретать маниакальные масштабы |
Andrey_A wrote: | а то, что касается Маньяка в коментариях Batya это комплимент для меня, мне понравилось - когда я 10 месяцев назад подключился к этому форуму, я всех считал маньяками-фанатами в своём роде, тех кто делал невероятное со скриптами, батниками...
Конечно же не любое "маньячество" и я приветствую, но автоматизация для меня - это не прихоть, а экономия времени, как и для других, наверное |
Так вот. Я тоже приветствую отнюдь не любое "маньячество" и к этим цитатам хотел бы добавить третью, из известного литературного первоисточника.
Quote: | — Я могу сказать только одно, — равнодушно сообщил Кристобаль Хозевич. — Я простой бывший Великий Инквизитор, и я закрою доступ к вашему автоклаву до тех пор, пока не получу гарантии, что эксперимент будет производиться на полигоне. |
Работоспособность предложенного скрипта я не проверял и не собираюсь, проскольку считаю этот путь решения априорно вредной затеей. Запускаем скрипт в произвольном каталоге, далее автоматом всё выделяется, пролетает окно с запросом на подтверждение удаления — и привет горячий. Единственное светлое пятно: удаление всё же предполагается производить в Корзину, а не в обход её (в целях, скажем, минимизации времени на удаление). Впрочем, это у кого как функция клавиши F8 настроена...
А посему скрипт я, следуя элементарному принципу "не навреди", из темы удаляю. Не надо ему тут лежать в свободном доступе. Хочется автору — пусть в приватном порядке дорабатывает.
Разумных рецептов решения проблемы здесь было предложено достаточно. В том числе с помощью поисковых шаблонов TC.
К сведению Andrey_A. Шаблон поиска создаётся не на основе скрипта. Такой шаблон для нахождения имени по превышению энного числа символов в имени (допустим, 4) может быть создан с помощью, например, плагина Filename ChrCount:
filename_chrcount — Filename (ChrCount excl Ext) — > — 4
Каталог на основной странице поиска указывается тот, где всё это нужно искать.
Далее записывается шаблон, создаётся пользовательская команда типа LOADSEARCH <имя_шаблона>. Дальнейшее, думаю, понятно. Для расширения есть другое свойство плагина, создаём отдельный шаблон. Для другого числа символов в имени — третий.
А уж что делать со списком найденного, выведенным на панель, пусть пользователь решает. С несколькими промежуточными кликами, зато абсолютно безопасно для себя и окружающих, если они решат следовать его примеру. _________________ Даже самая богатая фантазия
Не представит себе наши безобразия. |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Thu Jan 28, 2010 10:56 Post subject: |
|
|
Ну, т.к. автор темы хотел найти решение, более простое, чем использование поиска, думаю, к месту будет напомнить, что шаблоны поиска можно использовать и в окне выделения файлов - будут выделены файлы в папке, удовлетворяющие шаблону. Согласен, лучше запускать удаление выделенных файлов вручную, а не доверять это глупому скрипту.
Но в любом случае, использовать просто маски (с regexp или без него) для такого простого случая быстрее, чем применять внешние модули для подсчета числа символов. _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel… |
|
Back to top |
|
|
Tol!k
Joined: 01 Apr 2008 Posts: 1727 Location: Арзамас
|
(Separately) Posted: Thu Jan 28, 2010 13:29 Post subject: |
|
|
MVV wrote: | Но в любом случае, использовать просто маски (с regexp или без него) для такого простого случая быстрее, чем применять внешние модули для подсчета числа символов. |
Маска ?????*.* (больше 4х) выделяет файлы
1.345
12.456
123.567
1234.678
Маска ??????*.* (больше 5и) выделяет файлы
12.456
123.567
1234.678
12345.789
Маски ?????*.?* и ??????*.?* работают правильнее
Quote: | Если хочется написать командный файл, там можно использовать команду del с первым вариантом маски. | del с любой из этих масок удаляет все файлы |
|
Back to top |
|
|
Andrey_A
Joined: 10 Apr 2009 Posts: 394 Location: Сочи
|
(Separately) Posted: Thu Jan 28, 2010 15:05 Post subject: |
|
|
Спасибо за комментарии. Действительно это действие небезопасно.
Я об этом сразу не подумал, ведь небезопасным скриптом или советом может кто-то воспользоваться... Частично я отказался от этой затеи. Впредь буду обдумывать, прежде чем добавлять новую тему
Спасибо за примеры MVV некоторыми воспользовался
Отдельное спасибо сенсею Avada |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
(Separately) Posted: Fri Jan 29, 2010 02:23 Post subject: |
|
|
Tol!k wrote: |
Маска ?????*.* (больше 4х) выделяет файлы
1.345
12.456
123.567
1234.678
Маска ??????*.* (больше 5и) выделяет файлы
12.456
123.567
1234.678
12345.789
Маски ?????*.?* и ??????*.?* работают правильнее |
Озадачил ты меня... Никогда бы не подумал, что звездочка включает точку-разделитель имени и расширения... Что-то тут не так. Я же явно указываю позицию точки... Буду спрашивать на оф. форуме.
Кстати, твои маски - тоже не панацея. Если файл без расширения, они работать не будут.
Во, придумал шаблон, работающий в любом случае, правда громоздко получилось немного:
Code: | <^([^\.]{4,}|.{4,}\..*)$ |
(число можно любое, но одно и то же) _________________ TCFS2 + TCFS2Tools: Полноэкранный режим и многое другое (обсуждение)
WINCMD.RU: AskParam, CopyTree, NTLinks, Sudo, VirtualPanel…
Last edited by MVV on Fri Jan 29, 2010 02:57; edited 2 times in total |
|
Back to top |
|
|
Lev
Joined: 02 Mar 2005 Posts: 392
|
(Separately) Posted: Fri Jan 29, 2010 02:53 Post subject: |
|
|
маска "В имени больше или 4 символа"
.{4}.*\..*$
[x]Regexp
[off]Упорно пытался обозвать маску ">=4", но на не сохранялась. Только с третьей-четвёртой попытки сообразил, что символ ">" используется ТС как служебный [/off] |
|
Back to top |
|
|
MVV
Joined: 15 Oct 2009 Posts: 4811 Location: Ростов-Дон
|
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
Powered by phpBB © 2001, 2005 phpBB Group
|