|
|
| Название | EditFileComments |
| Имя файла (*.txt) | EditFileComments.txt |
| Описание | Производит однотипное изменение описаний файлов в текущей директории |
| Автор | Вахмурка |
| Параметры | "%F" |
| Вызываемые плагины | file, win, childwin |
| Иконка |
|
| Версия | 3.0 |
| Дата обновления | 08.06.2009 |
args Temp
local hwnd = win.handle("c=TTOTAL_CMD")
local Counter, Str, Class, Path, Name, Result, NewLine
local Where = "default - Instead"
local List = file.readall(Temp)
local Counter = line(List, 0)
Temp = "~Str=Comment string, Where=Location of new string relative to old one??"
Temp ++= "Before|After|Instead, NewLine=\ is a newline char??"
if(Counter == 1) do
win.postmessage(hwnd, 0x400+51, 2700, 0)
quit
endif
@CommentString
Result = Inputdialog(Temp, "Edit descriptions for " ++ Counter ++ " files")
if(not Result)
quit
if(not Str) do
Result = "Comment string is not specified. Would you like to delete old comments?"
Result = messagebox("yesnocancel question", Result, "'EditFileComments' script")
if(Result == 7) do
jump CommentString
elseif(Result == 0) do
quit
endif
endif
if(find(Str, "\") != -1 && NewLine)
Str = replacechars(Str, "\", "\n") ++ esc(?+\x04+, ?+\+) ++ esc(?+\xC2+, ?+\+)
for each line Class in List
Path = file.folder(Class) ++ "\"
Name = file.nametype(Class)
if(Result == 6) do
Class = "d"
else
if(Where == "default - Instead" || Where == "Instead") do
Class = "s"
elseif(Where == "Before") do
Class = "b"
elseif(Where == "After") do
Class = "a"
endif
endif
;Sub_Descript_ion - имя скрипта Sub_Descript_ion;
runfile.Subs\Sub_Descript_ion(Path, Name, Str, Class)
endfor
Внимание! Скрипт не работает в Total Commander 7.5 pb1 и pb2!
Версия данного скрипта для Total Commander 7.0 и старше.
Однажды мне понадобилось отредактировать комментарии (те, которые в файле descript.ion) сразу к нескольким файлам, и я с удивлением обнаружил, что Total Commander такой возможности не предоставляет - только текущий, и только один. А жаль. Ну что же, дело поправимо. Если мне от Total Commander нужна функция, которой его не снабдили, я пишу скрипт PowerPro.
Преимущества скрипта в том, что если на панели ничего не выделено, то скрипт просто отработает команду cm_EditComment. Поэтому имеет полный смысл присвоить вызову скрипта клавиатурную комбинацию Ctrl+Z. Если вам не потребуется редактировать несколько описаний, то и разницы вы не заметите. А вот в противном случае вспомните меня добрым словом.
Итак, если выделено несколько файлов, появится следующее диалоговое окно:
Заголовок напоминает о том, сколько файлов выделено (в данном случае 3). В первое поле вводится произвольная строка, но можно оставить ее и пустой. Это значит, что комментарии к выделенным файлам, если они есть, будут удалены. После подтверждения, разумеется.
Если же строка задана, то в выпадающем списке можно выбрать, куда она будет вставлена - до существующего комментария (Before), после него (After) или вместо него (Instead). Последний выбор предполагается по умолчанию.
Флаг "\ is a newline char" позволяет задавать многострочные комментарии (новшество версии 7.5). Если флаг установлен, то символ обратного слэша в тексте комментария будет означать начало новой строки. Символ конца многострочного комментария будет добавлен автоматически. Так что при задании переноса строки в комбинации с опцией "до" будьте осторожны: старый комментарий потеряется! Если вы собираетесь использовать переносы строк в комментариях к нескольким файлам, лучше заранее потренироваться "на кошках".
|
На главную |
|
Все о Total Commander |
|
PowerPro |
|
PowerPro & Total Commander |