Не нашёл подобных вопросов.
У меня файлы, на конце которых указан год.
То есть, например, файлы вида Название_2004, Название_2005,...
Задача: отсортировать все файлы по последним 4-м символам, то есть по году.
Буду благодарен за помощь.
[mod="Avada"]С учётом реального содержания тема перенесена из "Общих вопросв" в "Автоматизацию".[/mod]
Сортировка списка файлов по отдельным символам
Модераторы: Avada, CaptainFlint, Nik, d-view, Моторокер
Можно создать колонку в пользовательском наборе через Script Content Plugin. Навскидку:
Код: Выделить всё
'(c)Volniy, 2011
'Get last 4 digits 4 future sorting
'file12004.txt -> 2004
'file22011.txt -> 2011
'etc.
Dim fso, tmp
Set fso = CreateObject("Scripting.FileSystemObject")
tmp = LCase(fso.GetbaseName(filename))
content = Right(tmp,4)Для данного случая я бы предпочёл:
BaseNameRev.vbs:
Script.ini:
Думаю, подобную возможность не помешало бы прикрутить к плагинам nicepaths, filemask, expander(2).
BaseNameRev.vbs:
Код: Выделить всё
BN = LCase(CreateObject("Scripting.FileSystemObject").GetBaseName(FileName))
i = InStrRev(BN, "_")
y = Mid(BN, i + 1)
If i > 0 And IsNumeric(y) Then content = yКод: Выделить всё
[Script]
Section=BaseNameRev
[BaseNameRev]
Script=BaseNameRev.vbsКак вариант: переименовать (с помощью инструмента группового переименования и регулярных выражений) файлы, перенеся/добавив год в начало имени. С помощью отката можно при необходимости вернуть прежние имена.sancher писал(а):Задача: отсортировать все файлы по последним 4-м символам, то есть по году.
всем спасибо за помощь!
Добавлено спустя 41 минуту:
и всё-таки решил задать ещё один вопрос...
может пригодится не только мне
просто опыта работы с плагинами мало, поэтому сразу
ничего не вышло
установил плагин, создал BaseNameRev.vbs, поправил Script.ini
настроил набор колонок ([=script.Result])
и тишина...
стал копаться
так и не понял, как настроить, чтобы плагин работал при наличии нескольких скриптов, т. е. при наличии дефолтного ext.vbs и нового BaseNameRev.vbs
пришлось в Script.ini закомментить дефолтный скрипт
[Script]
Section=BaseNameRev
;Section=Extension
теперь BaseNameRev.vbs выводит результат в [=script.Result]
как заставить работать при наличии нескольких скриптов?
как плагин поймёт, из какого скрипта брать script.Result?
я сначала подумал, что нужно писать [=BaseNameRev.Result]
не вышло
Добавлено спустя 41 минуту:
и всё-таки решил задать ещё один вопрос...
может пригодится не только мне
просто опыта работы с плагинами мало, поэтому сразу
ничего не вышло
установил плагин, создал BaseNameRev.vbs, поправил Script.ini
настроил набор колонок ([=script.Result])
и тишина...
стал копаться
так и не понял, как настроить, чтобы плагин работал при наличии нескольких скриптов, т. е. при наличии дефолтного ext.vbs и нового BaseNameRev.vbs
пришлось в Script.ini закомментить дефолтный скрипт
[Script]
Section=BaseNameRev
;Section=Extension
теперь BaseNameRev.vbs выводит результат в [=script.Result]
как заставить работать при наличии нескольких скриптов?
как плагин поймёт, из какого скрипта брать script.Result?
я сначала подумал, что нужно писать [=BaseNameRev.Result]
не вышло
Обсуждается в спецтеме.sancher писал(а):как заставить работать при наличии нескольких скриптов?