View previous topic :: View next topic |
Author |
Message |
sancher
Joined: 04 Nov 2011 Posts: 12 Location: Piter
|
(Separately) Posted: Fri Nov 04, 2011 22:48 Post subject: Сортировка списка файлов по отдельным символам |
|
|
Не нашёл подобных вопросов.
У меня файлы, на конце которых указан год.
То есть, например, файлы вида Название_2004, Название_2005,...
Задача: отсортировать все файлы по последним 4-м символам, то есть по году.
Буду благодарен за помощь.
! | Avada: | С учётом реального содержания тема перенесена из "Общих вопросв" в "Автоматизацию". | |
|
Back to top |
|
 |
Volniy

Joined: 15 Dec 2004 Posts: 585 Location: Местный
|
(Separately) Posted: Sat Nov 05, 2011 00:19 Post subject: |
|
|
Можно создать колонку в пользовательском наборе через Script Content Plugin. Навскидку:
Code: | '(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) |
|
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Nov 05, 2011 01:22 Post subject: |
|
|
Для данного случая я бы предпочёл:
BaseNameRev.vbs:
Code: | 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.ini: Code: | [Script]
Section=BaseNameRev
[BaseNameRev]
Script=BaseNameRev.vbs |
Думаю, подобную возможность не помешало бы прикрутить к плагинам nicepaths, filemask, expander(2). |
|
Back to top |
|
 |
sa
Joined: 29 Apr 2009 Posts: 2693
|
(Separately) Posted: Sat Nov 05, 2011 11:02 Post subject: |
|
|
sancher wrote: | Задача: отсортировать все файлы по последним 4-м символам, то есть по году. |
Как вариант: переименовать (с помощью инструмента группового переименования и регулярных выражений) файлы, перенеся/добавив год в начало имени. С помощью отката можно при необходимости вернуть прежние имена. |
|
Back to top |
|
 |
sancher
Joined: 04 Nov 2011 Posts: 12 Location: Piter
|
(Separately) Posted: Sat Nov 05, 2011 11:18 Post subject: |
|
|
всем спасибо за помощь!
Добавлено спустя 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]
не вышло |
|
Back to top |
|
 |
Flasher

Joined: 06 Nov 2009 Posts: 14229 Location: Москва
|
(Separately) Posted: Sat Nov 05, 2011 12:34 Post subject: |
|
|
sancher wrote: | как заставить работать при наличии нескольких скриптов? | Обсуждается в спецтеме. |
|
Back to top |
|
 |
|