Что нового

[SciTE] lua-скрипт для создания резервной копии файла

Redline

AutoIT Гуру
Сообщения
506
Репутация
375
Идею взял из Tidy, который перед прогоном создает резервную копию скрипта в папку BackUp
Принцип работы:
Жмем F9 (можно переназначить) в окне с au3-скриптом, lua создает копию данного au3-скрипта, дописывая к имени дату и время (при желании можно поменять или убрать)
По-умолчанию копия создается в той же папке, но это тоже можно изменить на статический путь, например "c:\\folder1\\" или на относительный путь (т.е. глубже чем скрипт-оригинал).

Замечания:
При указании пути дублируйте все обратные слэши (\\) - для lua одиночный слэш это экранирование.
Папка для копирования должна существовать!

Установка:
Создайте файл с названием CreateBackUpFile.lua в папке SciTE\Lua и скопируйте этот текст в него:
Код:
-- Create a file backUp

directory = ''
--directory = 'BackUp\\' --relative path
--directory = 'C:\\Program Files\\AutoIt3\\BackUp\\' --static path

in_file = io.open(file_full_path, 'rb')
in_file_path = string.match(file_full_path, '(.*\\)')
in_file_name = string.match(file_full_path, '.*\\(.*)%.')
in_file_ex = string.match(file_full_path, '.*(%..*)$')

date_time = os.date(' [%Y-%m-%d] [%H-%M-%S]')
--out_filename = directory .. in_file_name .. date_time .. in_file_ex --static path
out_filename = in_file_path .. directory .. in_file_name .. date_time .. in_file_ex --relative path

out_file = io.open(out_filename, 'wb')
out_file:write(in_file:read('*a'))
out_file:close()
in_file:close()
print('File was successfully copied to --> ' .. out_filename)

Далее открываем файл \SciTE\Properties\au3.properties идем к описанию меню AutoitTools.
Ищем последний пункт меню (у меня #33) далее пишем это:

Код:
#~ #x 34 Create a file backUp
command.name.34.$(au3)=Сделать копию скрипта
command.34.$(au3)=dostring file_full_path=props["FilePath"] dofile(props["SciteDefaultHome"].."\\lua\\CreateBackUpFile.lua")
command.mode.34.$(au3)=subsystem:lua,savebefore:yes
command.shortcut.34.$(au3)=F9

Оба файла сохраняем. Пользуйтесь на здоровье!
 

BlagoYar

Русь Великая, Очнись! Поднимись с колен Родная!
Сообщения
64
Репутация
-1
Если путь
Код:
"d:\Программы\TotalCommander\Launching\Scripts\AutoIt\Portable\My Scripts\BackUp\"
то
Код:
...able\SciTE4AutoIt3_Portable\lua\CreateBackUpFile.lua:17: attempt to index global 'out_file' (a nil value)
>Lua: error occurred while processing command
Это из-за кириллицы?
Если да, то "полечить" можно?
 
Верх