Имя: Пароль:
1C
 
Командная строка для Rar
0 YDenn
 
05.11.06
18:55
Здравствуйте!
Есть документы, сохраняются 1С во временную папку. Далее нужно командной строкой запустить архиватор рар, чтобы он сформировал многотомный архив на дискете. Не подскажите командную строку для этого.

Спасибо
1 Ковекс
 
05.11.06
19:07
WinRAR допускает управление из командной строки. Общий синтаксис командной строки таков:

WinRAR  <команда>  –<ключ1>  –<ключN>  <архив>  <файлы…>  <@файл-список…>  <путь для извлечения\>

команда    Комбинация символов, указывающая на действие, которое будет выполнять WinRAR.
ключ    Ключи используются для определения специфических действий, степени сжатия, типа архива и пр.
архив    Имя обрабатываемого архива.
файлы    Имена обрабатываемых файлов.
файл-список    Файлы-списки – это простые текстовые файлы, содержащие имена файлов для обработки. Каждое имя файла должно быть указано на отдельной строке и начинаться с первой позиции строки. В файл-список допускается помещать комментарии, признак начала комментария – символы //. Например, для архивирования файлов *.txt из папки c:\work\doc, файлов *.bmp из папки c:\work\image и всех файлов из папки c:\work\misc можно создать backup.lst, содержащий следующие строки:c:\work\doc\*.txt    //резервная копия текстовc:\work\image\*.bmp    //резервная копия рисунковc:\work\miscПосле этого для архивирования достаточно будет выполнить команду:rar a backup @backup.lstВ одной командной строке разрешается указывать как обычные имена или группы файлов для обработки, так и файлы-списки. Если не указаны ни файлы, ни файлы-списки, то подразумевается шаблон *.* (т.е. WinRAR обработает все файлы).
путь для извлечения    Используется только с командами e и x и указывает папку, в которую нужно извлекать файлы. Если эта папка не существует, то она будет создана.
Замечания

а)    Если не указаны ни файлы, ни файл-список, то подразумевается шаблон *.*, и WinRAR обработает все файлы.
б)    Если не указано расширение архива, то WinRAR будет использовать формат архива по умолчанию, выбранный в профиле архивации по умолчанию, но если вы хотите указать тип архива явно, то это можно сделать добавлением к имени архива расширения RAR или ZIP.
в)    Ключи, введенные в командной строке, имеют более высокий приоритет, чем соответствующие установки в диалоге конфигурации, т.е. используются параметры, заданные ключами.

г)    Для команд c, e, s, t, rr, k и x в имени архива допускается использовать шаблоны, поэтому одной командой можно обработать сразу нескольких архивов. Более того, если вместе с этими командами указать ключ  -r, то поиск архивов будет вестись и во всех вложенных папках.
д)    Некоторые команды и ключи применимы только к архивам RAR, некоторые — к архивам RAR и ZIP, а некоторые — к архивам всех поддерживаемых форматов. Это зависит от возможностей, заложенных в формат архива.

е)    Команды и ключи не зависят от регистра символов, поэтому вы можете набирать их как строчными, так и прописными буквами.
2 Ковекс
 
05.11.06
19:08
-ac    Снять атрибут "архивный" после архивации или извлечения
-ad    Добавить к пути назначения имя архива
-af<тип>    Указать формат архива
-ag[формат]    Добавить к имени архива текущую дату и время
-ao    Добавить файлы с установленным атрибутом "архивный"
-ap    Установить путь внутри архива
-as    Синхронизировать содержимое архива
-av    Добавить электронную подпись
-av-    Запретить добавление/проверку электронной подписи
-cl    Преобразовать имена файлов в нижний регистр
-cu    Преобразовать имена файлов в верхний регистр
-df    Удалить файлы после архивации
-dh    Открывать совместно используемые файлы
-ds    Не сортировать файлы при архивации
-ed    Не добавлять пустые папки
-en    Не добавлять блок "конец архива"
-ep    Исключить пути из имен
-ep1    Исключить из пути базовую папку
-ep2    Сохранять полные пути файлов
-f    Освежить файлы
-hp[пароль]    Шифровать и данные, и заголовки файлов
-ibck    Запустить WinRAR как фоновый процесс в системном лотке
-ieml    Отправить архив по электронной почте
-ilog[имя]    Записывать протокол ошибок в файл
-inul    Не выводить сообщений об ошибках
-k    Заблокировать архив
-kb    Сохранять на диске файлы, извлечённые с ошибками
-m<n>    Установить метод сжатия
-mc<параметры>    Указать дополнительные параметры сжатия
-md<n>    Установить размер словаря
-ms    Указать типы файлов для архивирования без сжатия
-os    Сохранить потоки NTFS
-ow    Обработать информацию о правах доступа к файлам
-o+    Перезаписывать существующие файлы
-o-    Не перезаписывать существующие файлы
-p[пароль]    Установить пароль
-r    Рекурсивно с вложенными папками
-r0    Рекурсивно с вложенными папками по шаблону
-rr[N]    Добавить информацию для восстановления
-rv[N]    Создать тома для восстановления
-s    Создать непрерывный архив
-s<N>    Создать непрерывные группы, используя счетчик файлов
-se    Создать непрерывные группы, используя расширения файлов
-sfx[имя]    Создать самораспаковывающийся архив
-sv    Создать независимые непрерывные тома
-sv-    Создать зависимые непрерывные тома
-s-    Запретить создание непрерывных архивов
-t    Протестировать файлы после архивирования
-ta<дата>    Обрабатывать файлы, изменённые после указанной даты
-tb<дата>    Обрабатывать файлы, изменённые до указанной даты
-tk    Сохранять исходное время архива
-tl    Установить время архива по самому новому файлу
-tn<время>    Обрабатывать файлы не старее, чем указанный период времени
-to<время>    Обрабатывать файлы более старые, чем указанный период времени
-u    Обновить файлы
-v<n>[k|b|f|m|M]    Создать многотомный архив
-vd    Очищать сменный диск перед архивацией на него
-ver    Контроль версий файлов
-vn    Использовать старую схему именования томов
-vp    Делать паузу перед каждым томом
-x<файл >    Не обрабатывать указанный файл
-x@<файл-список>    Не обрабатывать файлы, указанные в файле-списке
-y    Отвечать "Да" на все запросы
-z<файл>    Прочитать комментарий архива из файла
--    Прервать дальнейший поиск ключей в командной строке
3 Ковекс
 
05.11.06
19:08
A    Добавить файлы в архив
C    Добавить архивный комментарий
D    Удалить файлы из архива
E    Извлечь файлы из архива, игнорируя пути
F    Освежить файлы в архиве
K    Заблокировать архив
M    Переместить файлы и папки в архив
R    Восстановить поврежденный архив
RC    Воссоздать недостающие тома
RR[N]    Добавить информацию для восстановления
RV[N]    Создать тома для восстановления
S[имя]    Преобразовать архив в самораспаковывающийся
S-    Удалить SFX-модуль
T    Протестировать файлы в архиве
U    Обновить файлы в архиве
X    Извлечь файлы из архива с полными путями
4 YDenn
 
05.11.06
19:19
Спасибо.

Удачи.
5 Фокусник
 
05.11.06
20:32
(0) обычно запуск exe с /? выдает перечень возможных ключей...
6 YDenn
 
05.11.06
22:11
Что-то не получается, help!!!
Где ошибка:
ЗапускАрх="rar a -v1440f -vd A:\"+Строка(ТекущаяДата())+".rar C:\Temp_1C\"+Строка(ТекущаяДата())+"\*.*";
       
ЗапуститьПриложение(ЗапускАрх);  

выдает: "Ошибка при выполнении команды;"

Спасибо
7 Лефмихалыч
 
05.11.06
22:19
ну, во-первых, запусти врукопашную эту команду, а во-вторых, воспользуйся Сообщить(); может там командная строка погоду содержит
8 YDenn
 
05.11.06
22:36
Вручную запустил, пишет:
C:\Windows\rar.pif
Неверное имя файла программы, проверьте содржимое PIF-файла...

В Сообщить пишет:
rar a -v1440f -vd A:\06.11.06.rar C:\Temp_1C\06.11.06\*.*
9 Темный Эльф
 
05.11.06
22:39
Найди C:\Windows\rar.pif и напиши в нем путь к rar.exe
10 Лефмихалыч
 
05.11.06
22:39
чо такое rar.pif?
почему "rar a ИТЫДЫ", а не """c:\progra~1\winrar\rar.exe ИТЫДЫ""" ?
11 YDenn
 
05.11.06
22:54
Сделал:
ЗапускАрх="c:\progra~1\winrar\rar.exe a -v1440f -vd C:\"+Строка(ТекущаяДата())+".rar C:\Temp_1C\"+Строка(ТекущаяДата())+"\*.*";

Пишет:
Ошибка при выполнении команды;
c:\progra~1\winrar\rar.exe a -v1440f -vd C:\06.11.06.rar C:\Temp_1C\06.11.06\*.*

Но при этом в указанном месте создает архив. Что за "Ошибка при выполнении команды"?
12 Лефмихалыч
 
05.11.06
22:58
директория-источник точно существует?
13 YDenn
 
05.11.06
23:09
(12)Да
14 YDenn
 
06.11.06
09:36
Добрый новый день!
Так и не решил проблему.
Код:
ЗапускАрх="c:\progra~1\winrar\rar.exe a c:\"+Строка(ТекущаяДата())+".rar C:\Temp_1C\"+ТекущаяДата()+"\*.*";
ЗапуститьПриложение(ЗапускАрх);

Пишет:  
Ошибка при выполнении команды;
c:\progra~1\winrar\rar.exe a c:\06.11.06.rar C:\Temp_1C\06.11.06\*.*
Но при этом архив создается!!!!

Строку: c:\progra~1\winrar\rar.exe a c:\06.11.06.rar C:\Temp_1C\06.11.06\*.* запускаю ручками - все ОК. Заменил рар с 3.04 на 3.50 - результат тот же. Как избавиться от сообщения "Ошибка при выполнении команды;" - сбивает с толку и откуда оно появилось, т.е что это за ошибка.

Спасибо
15 evGenius
 
06.11.06
09:41
ЗапускАрх="""c:\program files\winrar\rar.exe"" a ""c:\"+Строка(ТекущаяДата())+".rar"" ""C:\Temp_1C\"+ТекущаяДата()+"\*.*""";
16 evGenius
 
06.11.06
09:42
Попробуй использовать опцию:
-ilog[имя]    Записывать протокол ошибок в файл
17 YDenn
 
06.11.06
09:46
(16)То-то и оно в раре ошибок нет. Что-то 1С мешает, вот что?
18 YDenn
 
06.11.06
09:47
(15)Поменял - результат тот же.
19 Лефмихалыч
 
06.11.06
09:48
а ты откуда уверен, что у тебя именно в этой строке ошибка?
20 Лефмихалыч
 
06.11.06
09:49
может попробовать
Шелл = СоздатьОбъект("Scriting.Shell");
Шелл.Run("c:\progra~1\winrar\rar.exe a c:\"+Строка(ТекущаяДата())+".rar C:\Temp_1C\"+ТекущаяДата()+"\*.*");
?
21 evGenius
 
06.11.06
09:49
(17) Пробовал?
22 YDenn
 
06.11.06
09:51
(19)вы гений. Закомментировал строки с кодом для рара - ошибка выскакивет. Я идиот.
Спасибо, полез в код.
23 evGenius
 
06.11.06
09:51
ИМХО архиватор пытается системе вернуть ненулевое значение, но вот почему?
24 VasilyKushnir
 
06.11.06
09:51
А ты попробуй загнать вю эту хрынь в коммандный файл, отработай, чтобы ошибок не выдавала, а из 1С можно и батник запустить.
Предупреждение!!!! В ХР ДОС весьма урезан - надо недостающие файлы скопировать из 2003 (в 2000 не знаю - врать не буду).
25 evGenius
 
06.11.06
09:51
(22) :-))) Точно.
26 YDenn
 
06.11.06
09:56
Нашел ошибку.
У меня обработкой сохраняются из справочников печатные формы. Первый раз запускаю - все Ок. Второй и последующие, 1С стучится в уже созданную предыдущими запусками папку с тем же именем. Вот и выдает ошибку.

Спасибо огромное. 4 часа рар крутил, а решение оказалось на 5 минут.