Total Commander Forum Index Total Commander
Форум поддержки пользователей Total Commander
Сайты: Все о Total Commander | Totalcmd.net | Ghisler.com | RU.TCKB
 
 RulesRules   SearchSearch   FAQFAQ   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Single Post  Topic: Предложение - новая концепция специальных параметров 
Author Message
Batya



PostPosted: Fri Jun 02, 2006 15:32    Post subject: Reply with quote

Помнится, я писал:
Batya wrote:
Хорошо бы увеличить список параметров командной строки.

И CaptainFlint мне предлагал описать возможные варианты реализации новых параметров (что-то я этот пост найти не могу).
Долго руки не доходили. Вот, наконец, родил:
--------------
За основу берем старые обозначения (причем они все остаются действующими).
Используем следующие старые базовые обозначения:
%P - вставляет в командную строку исходный путь, включая обратную наклонную черту (\) в конце.
%N - помещает в командную строку имя файла под курсором.
%O - помещает в командную строку текущее имя файла без расширения.
%E - помещает в командную строку текущее расширение (без предшествующей точки).

Добавляем новое базовое обозначение:
%S - вставляет в командную строку исходный путь без обратной наклонной черты (\) в конце.

Как и раньше, прописные буквы - длинные имена, строчные буквы - имена в формате "8.3".

Немного меняем старый вариант:
%L - создает файл список по отмеченным файлам. Данное обозначение может идти с параметрами, заключенными в фигурные скобки.
Пример 1, %L{%P%N} - аналог старого %L.
Если параметры не указаны (%L), то создается список %L{%P%N}.
Пример 2, %L{%p%n} - аналог старого %l.
Пример 3, %L{%N} - аналог старого %F.
Пример 4, %L{%n} - аналог старого %f.
Примечание - я только не разобрался со старыми %D и %d. Чем они отличаются от %l и %f, соответственно?

Пример 5, %L{%P} - аналога нет - список исходных путей со слешем в конце. Целесообразно для режима Ctrl+B.
Пример 6, %L{%S} - аналога нет - список исходных путей без слеша в конце.

Внимание:
%l без параметров вернет имя файла-списка со списком из файлов вида %p%n, т.е. старый вариант.
%l с параметрами будет возвращать то же самое, что и %L с такими же параметрами. Т.е. %l с параметрами используется исключительно для совместимости.

Новое обозначение:
%C - счетчик. Целесообразно использовать в файлах-списках.
Пример, %L{ %С. - %P%N} - вернет список вида:
1. - путь1\файл1
2. - путь2\файл2
3. - путь3\файл3

Новое обозначение:
%@ - возвращает строку (!), представляющую из себя список элементов через пробел. Вид списка задается параметрами аналогично %L.
Пример, %@{ %С. - %P%N} - вернет строку вида:
1. - путь1\файл1 2. - путь2\файл2 3. - путь3\файл3

%@ без параметров аналогичен %@{%P%N}.

Новое обозначение:
%B - возвращает пустую строку в файле списке. Для строки ничего не вернет.
Пример, %L{%C%B%P%N} - вернет список вида:
1
путь1\файл1
2
путь2\файл2
3
путь3\файл3

Новое обозначение:
%A - возвращает признак активной панели:
0 - если активна левая панель,
1 - если активна правая панель.
Целесообразно для применения во внешних скриптах.

Теперь префикс:
! - аналогичные значения на пассивной (противоположной) панели. Данный префикс должен работать со всеми вышеописанными обозначениями.
Пример, %!P - аналог старого %T.

Постфикс:
:X - указывается для %L и %@ после параметров. Где X - число, указывающее на количество повторений в списке.
Пример 1, %L{%C%B%P%N}:2 - для 3 выделенных файлов вернет список вида:
1
путь1\файл1
2
путь2\файл2

Пример 2, %@{%C. %P%N}:2 - для 3 выделенных файлов вернет строку вида:
1. путь1\файл1 2. путь2\файл2

%L:X аналогичен %L{%P%N}:X, %@:X аналогичен %@{%P%N}:X.

Обозначения для ввода спецсимволов:
%% - ввод символа "%".
%{ - ввод символа "{".
%} - ввод символа "}".
%: - ввод символа ":".

Ну, вроде, ничего не забыл.
У кого есть предложения и замечания, высказывайте.
-------------
Люди добрые, владеющие английским (CaptainFlint, Funduk Smile), не мог бы кто-нить запостить на оф. форум это сообщение. Глядишь, Гислер отзовется.
-------------
Правка:
Вот, нашел пост от CaptainFlint.
View user's profile Send private message


Powered by phpBB © 2001, 2005 phpBB Group