EditFileComments

Название EditFileComments
Имя файла (*.txt) EditFileComments.txt
Описание Производит однотипное изменение описаний файлов в текущей директории
Автор Вахмурка
Параметры "%F"
Вызываемые плагины file, win, childwin
Иконка
Версия 3.1
Дата обновления 15.08.2013

args Temp
local List = file.readall(Temp)
local Counter = line(List, 0)
local hwnd = win.handle("c=TTOTAL_CMD")

if(Counter == 1) do
	win.postmessage(hwnd, 0x400+51, 2700, 0)
	quit
endif

local Str, Class, Path, Name, Result, NewLine
local Where = "default - Instead"

Temp = "~Str=Comment string, Where=Location of new string relative to old one??"
Temp ++= "Before|After|Instead, NewLine=\ is a newline char??"

@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

wait.for(50)
win.setfocus(hwnd)
win.sendmessage(hwnd, 0x400+51, 540, 0)

Комментарии:

Версия данного скрипта для 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