Собственная быстрая сортировка/список файлов
Модераторы: d-view, Моторокер, Avada, CaptainFlint, Nik
Собственная быстрая сортировка/список файлов
Друзья, прошу не пинать ногами - давно не парился с настройками TC - всего хватало. А тут не соображу, как проще сделать...
Есть набор файлов. Нужно отдать внешней программе (батнику) список файлов в конкретном порядке, который в этот момент не может быть получен текущими сортировками с последующей отправкой %WL, а зависит только от моего желания в этот момент.
Например, есть файлы 1.txt, 2.txt, 3.txt, 4.txt. Исходя из своих соображений, мне нужно быстро отправить батнику список в порядке - 4.txt, 3.txt, 1.txt, 2.txt.
Как это проще и удобнее сделать?
Есть набор файлов. Нужно отдать внешней программе (батнику) список файлов в конкретном порядке, который в этот момент не может быть получен текущими сортировками с последующей отправкой %WL, а зависит только от моего желания в этот момент.
Например, есть файлы 1.txt, 2.txt, 3.txt, 4.txt. Исходя из своих соображений, мне нужно быстро отправить батнику список в порядке - 4.txt, 3.txt, 1.txt, 2.txt.
Как это проще и удобнее сделать?
Нет, я не сплю. Я просто медленно моргаю.
Можно командой LOADLIST загрузить в панель список из текстового файла, где они уже должны быть расположены в нужном порядке.
Затем в панели выделить всё и отправить через %WL батнику.
Хотя это, наверное, не просто и не удобно...
Список можно получить через редактор в инструменте группового переименования (ИГП). В самом ИГП можно сортировать файлы в произвольном порядке.
В поле <Список файлов> отдельные элементы могут быть перемещены вверх/вниз с помощью Drag&Drop или клавиш Shift+стрелки.
Затем в панели выделить всё и отправить через %WL батнику.
Хотя это, наверное, не просто и не удобно...
Список можно получить через редактор в инструменте группового переименования (ИГП). В самом ИГП можно сортировать файлы в произвольном порядке.
В поле <Список файлов> отдельные элементы могут быть перемещены вверх/вниз с помощью Drag&Drop или клавиш Shift+стрелки.
Последний раз редактировалось sa Ср апр 05, 2023 16:08, всего редактировалось 1 раз.
- Monarch-LFV
- Сообщения: 363
- Зарегистрирован: Пн июл 22, 2019 13:20
Batya
sa
Ну тут на самом деле, если есть уже готовый список с нужной сортировкой, то уже не надо LOADLIST’ом обрабатывать. Можно этот список сразу батником построчно и обработать, без промежуточных действий. По сути, тут решение, думаю, и будет состоять в том, что в начале будет создаваться временный файл-список, и далее построчно обрабатываться. Вопрос - как получить нужную сортировку? Если нужна обратная сортировка, то можно попробовать встроенную в windows утилиту sort.exe с параметром /R.
sa
Ну тут на самом деле, если есть уже готовый список с нужной сортировкой, то уже не надо LOADLIST’ом обрабатывать. Можно этот список сразу батником построчно и обработать, без промежуточных действий. По сути, тут решение, думаю, и будет состоять в том, что в начале будет создаваться временный файл-список, и далее построчно обрабатываться. Вопрос - как получить нужную сортировку? Если нужна обратная сортировка, то можно попробовать встроенную в windows утилиту sort.exe с параметром /R.
- Monarch-LFV
- Сообщения: 363
- Зарегистрирован: Пн июл 22, 2019 13:20
Вот я и озадачился - как эту логику, которая только в моей голове, просто до TC донести.Monarch-LFV писал(а):Комп не экстрасенс, чтобы угадывать, что вы задумали. Надо ему явно задать логику.
sa писал(а):В самом ИГП можно сортировать файлы в произвольном порядке.
Вот, уже интереснее. Но у меня нет никакого исходного списка. У меня в голове есть желание обработать файлы батником в определённом порядке. Как-нибудь можно сохранение списка в ИГП ("Редактировать имена..." или как-то ещё) отправить произвольной команде на вход?sa писал(а):При закрытии редактора ИГП запрашивает разрешение на загрузку изменённых имён.
Нет, я не сплю. Я просто медленно моргаю.
- Monarch-LFV
- Сообщения: 363
- Зарегистрирован: Пн июл 22, 2019 13:20
Batya
Есть еще идея: как-то для себя делал скрипт, который пишет в заранее заданный альтернативный поток NTFS любую информацию, например счетчик. Плагином NTFS_diz вывести этот поток в колонку и по нему сортировать.
Собственно скрипт для того и делал, чтобы сортировать по своему усмотрению.
Выложил сюда.
Там пару скриптов: для задания любых комментариев в поток comment, и задания счетчика выделенных файлов Count. Также кнопка для Akelpad, которой можно вручную менять инфо в потоке.
Есть еще идея: как-то для себя делал скрипт, который пишет в заранее заданный альтернативный поток NTFS любую информацию, например счетчик. Плагином NTFS_diz вывести этот поток в колонку и по нему сортировать.
Собственно скрипт для того и делал, чтобы сортировать по своему усмотрению.
Выложил сюда.
Там пару скриптов: для задания любых комментариев в поток comment, и задания счетчика выделенных файлов Count. Также кнопка для Akelpad, которой можно вручную менять инфо в потоке.
- Моторокер
- Сообщения: 1517
- Зарегистрирован: Пт май 06, 2005 08:22
- Откуда: г. Пермь (читается Перьмь)
- Контактная информация:
Так всё же есть логика сортировки или надо строго ручками сортировать?
Если логика есть, то написать контентный плагин.
Если строго ручками, то тоже контентный плагин может позиции в файле считывать и выводить.
И такое впечатление, что всё же надо понять, какая цель всего этого действа. А то смысл биться над решением задачи, если задача может быть совсем другой.
Если логика есть, то написать контентный плагин.
Если строго ручками, то тоже контентный плагин может позиции в файле считывать и выводить.
И такое впечатление, что всё же надо понять, какая цель всего этого действа. А то смысл биться над решением задачи, если задача может быть совсем другой.
плагины для Total Commander, статьи Graphics Converter; NSCopy; SEO HTML; KillOK; Плагин на Delphi
ПармаСруб - строительство домов и бань в Перми
ПармаСруб - строительство домов и бань в Перми
Ну, цель - обработать файлы в определённом порядке, который известен только мне с профессиональной точки зрения. Файлов, обычно, немного - не больше десятка. Сама обработка - это отладочное действие, и хранить какую-то промежуточную/временную/мусорную информацию не очень хотелось бы. Максимум - где-то в сторонке иметь один-два файла с постоянным именем, но временной информацией.
Про идею хранить сортировочную информацию в ntfs-потоке или комментариях я подумаю.
Сейчас мне больше понравилась идея с drag-and-drop сортировкой в ИГП (т. к. файлов немного) с последующем сохранением в файл с постоянным путём-именем, а потом скармливания этого пути батнику. Попробую, насколько этим способом будет удобно пользоваться практически - что называется "на автомате".
Друзья, спасибо за помощь!
Про идею хранить сортировочную информацию в ntfs-потоке или комментариях я подумаю.
Сейчас мне больше понравилась идея с drag-and-drop сортировкой в ИГП (т. к. файлов немного) с последующем сохранением в файл с постоянным путём-именем, а потом скармливания этого пути батнику. Попробую, насколько этим способом будет удобно пользоваться практически - что называется "на автомате".
Друзья, спасибо за помощь!
Нет, я не сплю. Я просто медленно моргаю.
- Monarch-LFV
- Сообщения: 363
- Зарегистрирован: Пн июл 22, 2019 13:20
Batya
Если файлов немного, то можно предложить кнопку, которая вручную "собирает" файл-список:
Можно сделать как команду и навешать на горячую клавишу. Другую кнопку на удаление файла списка. А ваш батник настроить на обработку этого собранного файла в %Temp%.
Если файлов немного, то можно предложить кнопку, которая вручную "собирает" файл-список:
Код: Выделить всё
TOTALCMD#BAR#DATA
%COMSPEC% /C chcp 65001 &Type >>%temp%\Filelist.txt
%UL
wcmicons.dll,61
Добавить файл(ы) во временный файл-список- Monarch-LFV
- Сообщения: 363
- Зарегистрирован: Пн июл 22, 2019 13:20
Batya
Единственное, файл-список будет в UTF-8 с BOM. Обрабатывающий батник на первой строчке выдаст ошибку и не обработает первый файл.
Можно сделать так:
Но тогда лишитесь возможности обрабатывать юникодные имена файлов.
Честно, сам не знаю, как формировать файл-список в юникоде без BOM.
Единственное, файл-список будет в UTF-8 с BOM. Обрабатывающий батник на первой строчке выдаст ошибку и не обработает первый файл.
Можно сделать так:
Код: Выделить всё
TOTALCMD#BAR#DATA
%COMSPEC% /C echo >>%temp%\Filelist.txt
%P%N
wcmicons.dll,61
Добавить файл во временный файл-списокЧестно, сам не знаю, как формировать файл-список в юникоде без BOM.