gifts2017

Архивация файлов при помощи программы 7-Zip

Опубликовал Олег Валуйский (waol) в раздел Администрирование - Архивирование (backup)

Пример архивации при помощи командной строки для 7za.exe.

Я использую 7za.exe, которая работает только с командной строкой;
ее не нужно устанавливать, достаточно скопировать файл в 'некий каталог'.

Сайт архиватора: 7-Zip Copyright (C) 1999-2008 Igor Pavlov.

В общем случае алгоритм архивации следующий:
- создаю временный текстовый файл с кодировкой "windows" (по умолчанию),
в который добавляю строки с шаблонами, по которым б.происходить архивация, например:

Т =СоздатьОбъект("Текст");
Т.ДобавитьСтроку(ПутьКБ+"*.dbf");
Т.ДобавитьСтроку(ПутьКБ+"1cv7.MD");
Т.ДобавитьСтроку(ПутьКБ+"1cv7.DD");
Т.ДобавитьСтроку(ПутьКБ+"1cv7.ORD");
Т.ДобавитьСтроку(ПутьКБ+"1cv7.SPL");
Т.ДобавитьСтроку(ПутьКБ+"UsrDef\Users.usr");
Т.ДобавитьСтроку(ПутьКБ+"EXTFORMS\*78");
Т.Записать(КаталогИБ()+"arch_para
m.txt");

строки шаблонов при этом могут содержать пробелы и символы кириллицы

- формирую командную строку:

СтрКоманда=""""+ПутьКАрхиватору+""" a -tzip """+КаталогАрхива+ИмяФайлаАрхива+""" @"""+ВремФайл+""" -scsWIN";

в ней:
- все пути обрамлены кавычками, на тот случай, если встретятся наименования каталогов или файлов с пробелами;
- ПутьКАрхиватору - это 'некий каталог'\7za.exe
- параметр "-tzip" - указывает, что создаваемый архив будет формата ".zip";
- (КаталогАрхива+ИмяФайлаАрхива) - полный путь к создаваемому файлу архива;
- ВремФайл - в моем случае файл с шаблонами КаталогИБ()+"arch_param.txt"
- параметр "-scsWIN" - указывает, что кодировка ВремФайл - "windows"

- и наконец, приходится сформировать выполняемый файл с этой командной строкой,
поскольку в общем случае такая командная строка не выполняется непосредственно,
батник же заработал. Связано это, скорее всего, с присутствием символов кириллицы.

Т =СоздатьОбъект("Текст");
Т.КодоваяСтраница(1); // Dos кодировка
Т.ДобавитьСтроку(СтрКоманда);
ФайлБатник=КаталогВременныхФайлов()+"tempcs.bat";
Т.Записать(ФайлБатник);

КомандаСистемы(ФайлБатник);


Главное преимущество такого способа запуска архивации на мой взгляд следующее:

если у в каком-либо модуле присутствует строка КомандаСистемы(...), то программа, в отличии от, в частности, от ЗапуститьПриложение(...), не переходит к следующему оператору модуля до тех пор, пока не закончится архивация. А после этого уже можно приступать к действиям с новым, сформированным архивом: отправлять по почте, копировать куда либо, архивировать что-нибудь еще и т.д.
Более подробно о командах и параметрах 7-Zip можно почитать в "7-zip.chm", который прилагается к программе.

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Епрст (Ёпрст) 05.06.09 14:53
Зачем он нужен, когда можно самой 1с-иной всё паковать, через пакетный режим пофигуратора по маске файлов ?
:))
2. Олег Валуйский (waol) 05.06.09 14:56
запаковать можно. только с этим файлом ничего не сделаешь уже. А нужно, например, отправить его восвяси, или по почте, скажем ?
3. Епрст (Ёпрст) 05.06.09 15:26
Почему не сделаешь?
Так же..и отправишь..
Дык это я так, к слову..
4. Олег Валуйский (waol) 05.06.09 15:51
вообще ты прав. но 7z он компактней как то, чем 1с
5. Епрст (Ёпрст) 05.06.09 15:53
А вообще, пакетный режим можно использовать как бесплатный архиватор чего угодно.. в качестве "подарка" от 1с
:)
Ну мало ли, мот у кого денех нет на архиватор, а 1с стоит...
6. Аркадий Кучер (Abadonna) 05.06.09 16:05
" Note:
You can use 7-Zip on any computer, including a computer in a commercial
organization. You don't need to register or pay for 7-Zip."
Куды уж бесплатнее? ;)
7. Епрст (Ёпрст) 05.06.09 16:12
(6) Ну ты же знаешь, есть религиозные фанаты, где окромя 1с-ины - ничего более, ни вк, ни тем более, внешних архиваторов!
:)
8. Аркадий Кучер (Abadonna) 05.06.09 16:14
(7) Меня всегда удивляло желание впихнуть в 1С абсолютно все: архиваторы, органайзеры, карточные игры, медиа-плейеры и т.д. ;)
9. Епрст (Ёпрст) 05.06.09 16:20
(8) А то!
Всё в одной конфе... удобно :)

10. Евгений Люлюк (Evg-Lylyk) 05.06.09 16:22
Пользовался подобной схемой создания дистрибутива внешней обработки через bat файл
1C пакетный режим устанавливает в папку шаблонов (мне он не подошел)
11. Олег Валуйский (waol) 05.06.09 20:29
(8) главное, чтобы сама 1с не была сильно против )