View previous topic :: View next topic |
Author |
Message |
Batya
Joined: 15 Dec 2004 Posts: 2221 Location: Москва, Россия
|
(Separately) Posted: Wed Apr 05, 2023 12:57 Post subject: Собственная быстрая сортировка/список файлов |
|
|
Друзья, прошу не пинать ногами - давно не парился с настройками TC - всего хватало. А тут не соображу, как проще сделать...
Есть набор файлов. Нужно отдать внешней программе (батнику) список файлов в конкретном порядке, который в этот момент не может быть получен текущими сортировками с последующей отправкой %WL, а зависит только от моего желания в этот момент.
Например, есть файлы 1.txt, 2.txt, 3.txt, 4.txt. Исходя из своих соображений, мне нужно быстро отправить батнику список в порядке - 4.txt, 3.txt, 1.txt, 2.txt.
Как это проще и удобнее сделать? _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2625
|
(Separately) Posted: Wed Apr 05, 2023 14:44 Post subject: |
|
|
Можно командой LOADLIST загрузить в панель список из текстового файла, где они уже должны быть расположены в нужном порядке.
Затем в панели выделить всё и отправить через %WL батнику.
Хотя это, наверное, не просто и не удобно...
Список можно получить через редактор в инструменте группового переименования (ИГП). В самом ИГП можно сортировать файлы в произвольном порядке.
В поле <Список файлов> отдельные элементы могут быть перемещены вверх/вниз с помощью Drag&Drop или клавиш Shift+стрелки.
Last edited by sa on Wed Apr 05, 2023 17:08; edited 1 time in total |
|
Back to top |
|
|
Monarch-LFV
Joined: 22 Jul 2019 Posts: 286
|
(Separately) Posted: Wed Apr 05, 2023 15:44 Post subject: |
|
|
Batya
sa
Ну тут на самом деле, если есть уже готовый список с нужной сортировкой, то уже не надо LOADLIST’ом обрабатывать. Можно этот список сразу батником построчно и обработать, без промежуточных действий. По сути, тут решение, думаю, и будет состоять в том, что в начале будет создаваться временный файл-список, и далее построчно обрабатываться. Вопрос - как получить нужную сортировку? Если нужна обратная сортировка, то можно попробовать встроенную в windows утилиту sort.exe с параметром /R. |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2625
|
(Separately) Posted: Wed Apr 05, 2023 16:01 Post subject: |
|
|
Monarch-LFV wrote: | Если нужна обратная сортировка |
Так обратная сортировка есть и в самом TC. Хотя в примере - не обратная (4 3 1 2). Или это о чём-то другом? |
|
Back to top |
|
|
Monarch-LFV
Joined: 22 Jul 2019 Posts: 286
|
(Separately) Posted: Wed Apr 05, 2023 16:26 Post subject: |
|
|
sa
Упустил такую сортировку. Такую сортировку без других вводных не получишь. Комп не экстрасенс, чтобы угадывать, что вы задумали. Надо ему явно задать логику.
Перетаскивать по своему усмотрению можно в ИГП, а как с него получить список без переименования? |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2625
|
(Separately) Posted: Wed Apr 05, 2023 16:30 Post subject: |
|
|
При закрытии редактора ИГП запрашивает разрешение на загрузку изменённых имён. Надо отказаться, а можно и согласиться - мы ж их не меняем, а оставляем прежними. Важно лишь сохранение файла списка с нужным порядком файлов. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2221 Location: Москва, Россия
|
(Separately) Posted: Wed Apr 05, 2023 20:27 Post subject: |
|
|
Monarch-LFV wrote: | Комп не экстрасенс, чтобы угадывать, что вы задумали. Надо ему явно задать логику. |
Вот я и озадачился - как эту логику, которая только в моей голове, просто до TC донести.
sa wrote: | В самом ИГП можно сортировать файлы в произвольном порядке. |
sa wrote: | При закрытии редактора ИГП запрашивает разрешение на загрузку изменённых имён. |
Вот, уже интереснее. Но у меня нет никакого исходного списка. У меня в голове есть желание обработать файлы батником в определённом порядке. Как-нибудь можно сохранение списка в ИГП ("Редактировать имена..." или как-то ещё) отправить произвольной команде на вход? _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
sa
Joined: 29 Apr 2009 Posts: 2625
|
(Separately) Posted: Wed Apr 05, 2023 22:08 Post subject: |
|
|
Batya
А вариант с сохранением списка из ИГП (точнее из Редактировать имена…) в один и тот же файл не подойдёт? Скажем, обновлять каждый раз Список.txt на Рабочем столе. |
|
Back to top |
|
|
Monarch-LFV
Joined: 22 Jul 2019 Posts: 286
|
(Separately) Posted: Thu Apr 06, 2023 00:58 Post subject: |
|
|
Batya
Есть еще идея: как-то для себя делал скрипт, который пишет в заранее заданный альтернативный поток NTFS любую информацию, например счетчик. Плагином NTFS_diz вывести этот поток в колонку и по нему сортировать.
Собственно скрипт для того и делал, чтобы сортировать по своему усмотрению.
Выложил сюда.
Там пару скриптов: для задания любых комментариев в поток comment, и задания счетчика выделенных файлов Count. Также кнопка для Akelpad, которой можно вручную менять инфо в потоке. |
|
Back to top |
|
|
CruelAsm
Joined: 17 May 2010 Posts: 2 Location: Minsk, Belarus
|
(Separately) Posted: Thu Apr 06, 2023 11:13 Post subject: |
|
|
А файлов вообще много?
Если десяток-два, то сделать кнопку, добавляющую имена в текстовый файл, и перетаскать их туда в нужном порядке. Потом второй кнопкой скормить этот файл батнику. |
|
Back to top |
|
|
Моторокер
Joined: 06 May 2005 Posts: 1517 Location: г. Пермь (читается Перьмь)
|
(Separately) Posted: Thu Apr 06, 2023 12:00 Post subject: |
|
|
Так всё же есть логика сортировки или надо строго ручками сортировать?
Если логика есть, то написать контентный плагин.
Если строго ручками, то тоже контентный плагин может позиции в файле считывать и выводить.
И такое впечатление, что всё же надо понять, какая цель всего этого действа. А то смысл биться над решением задачи, если задача может быть совсем другой. _________________ плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2221 Location: Москва, Россия
|
(Separately) Posted: Thu Apr 06, 2023 15:58 Post subject: |
|
|
Ну, цель - обработать файлы в определённом порядке, который известен только мне с профессиональной точки зрения. Файлов, обычно, немного - не больше десятка. Сама обработка - это отладочное действие, и хранить какую-то промежуточную/временную/мусорную информацию не очень хотелось бы. Максимум - где-то в сторонке иметь один-два файла с постоянным именем, но временной информацией.
Про идею хранить сортировочную информацию в ntfs-потоке или комментариях я подумаю.
Сейчас мне больше понравилась идея с drag-and-drop сортировкой в ИГП (т. к. файлов немного) с последующем сохранением в файл с постоянным путём-именем, а потом скармливания этого пути батнику. Попробую, насколько этим способом будет удобно пользоваться практически - что называется "на автомате".
Друзья, спасибо за помощь! _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Monarch-LFV
Joined: 22 Jul 2019 Posts: 286
|
(Separately) Posted: Thu Apr 06, 2023 16:17 Post subject: |
|
|
Batya
Если файлов немного, то можно предложить кнопку, которая вручную "собирает" файл-список:
Code: | TOTALCMD#BAR#DATA
%COMSPEC% /C chcp 65001 &Type >>%temp%\Filelist.txt
%UL
wcmicons.dll,61
Добавить файл(ы) во временный файл-список |
Можно сделать как команду и навешать на горячую клавишу. Другую кнопку на удаление файла списка. А ваш батник настроить на обработку этого собранного файла в %Temp%. |
|
Back to top |
|
|
Batya
Joined: 15 Dec 2004 Posts: 2221 Location: Москва, Россия
|
(Separately) Posted: Thu Apr 06, 2023 16:34 Post subject: |
|
|
Monarch-LFV
Хм... Кажется, весьма удобное решение
Благодарю! _________________ Нет, я не сплю. Я просто медленно моргаю. |
|
Back to top |
|
|
Monarch-LFV
Joined: 22 Jul 2019 Posts: 286
|
(Separately) Posted: Thu Apr 06, 2023 17:06 Post subject: |
|
|
Batya
Единственное, файл-список будет в UTF-8 с BOM. Обрабатывающий батник на первой строчке выдаст ошибку и не обработает первый файл.
Можно сделать так:
Code: | TOTALCMD#BAR#DATA
%COMSPEC% /C echo >>%temp%\Filelist.txt
%P%N
wcmicons.dll,61
Добавить файл во временный файл-список |
Но тогда лишитесь возможности обрабатывать юникодные имена файлов.
Честно, сам не знаю, как формировать файл-список в юникоде без BOM. |
|
Back to top |
|
|
|