Имя: Пароль:
1C
Админ
Вывод сообщений 7Zip в текстовый лог
0 ildary
 
21.07.17
15:56
Уважаемые специалисты, скажите пожалуйста, как правильно настроить вывод сообщений в текстовый лог? В интернете есть разные мнения, но они не работают - я пробовал заменять 7z.exe на 7za.exe, пробовал >d:\7zip.txt, >d:\7zip.txt 2>&1, все не работает.


ОС: Win2003R2 x64. При ночной архивации стали появляться ошибки (код результата=1), хочется понять, что не нравится архиватору. Дневная идет без ошибок.
1 igork1966
 
21.07.17
15:59
2 Базис
 
naïve
21.07.17
16:00
В MS-DOS вывод любой программы в текстовый файл делался так: Dir C:\ >> list.txt
3 lodger
 
21.07.17
16:03
вывод в новый файл (или поверх старого)
Like this:
7za a -tzip -bd DESTINATION.zip "SOURCE" 2>%SYSTEMDRIVE%\7zLOG.TXT

дополнять один и тот же
and append same file...
7za a -tzip -bd DESTINATION.zip "SOURCE" 2>>%SYSTEMDRIVE%\7zLOG.TXT - appends log file
4 ildary
 
21.07.17
16:14
Попробовал 2>>d:\log.txt, попробовал 1>>d:\log.txt - тоже не работают. Забыл сказать, что где-то в недрах сайта 7zip встречал упоминание, что 7z.exe работает не через stdout, но решение - сменить на 7za.exe - не помогло.
5 lodger
 
21.07.17
16:17
(4) у юзера архивации есть права на d:\log.txt ?
6 Вафель
 
21.07.17
16:24
7 Вафель
 
21.07.17
16:25
7z t a.7z -bse1 > messages.txt
8 Вафель
 
21.07.17
16:27
9 mistеr
 
21.07.17
16:40
(4) Воспроизвести можешь? Не в Планировщике, а в консоли.
10 ildary
 
21.07.17
17:00
Спасибо всем за советы, обновил 7zip до версии, понимающей новый ключ -bse1 - и вижу следующее:

Если строку 7zip.exe a .... запустить из консоли, то всё работает - файл создается и логи пишутся. Но если ту же строку вызвать из exe файла (с помощью autoit) - то файл логов не создается. Строка одна и та же.
11 mistеr
 
21.07.17
17:06
(10) Ну еще бы. Команду перенаправления ">" понимает cmd, а в AutoIt это надо кодом прописывать. В справке есть примеры.
12 ildary
 
21.07.17
17:10
(11) понял, спасибо за объяснение
13 lodger
 
21.07.17
17:17
в итоге это не 7зип кривой, а использование AutoIt там где можно обойтись штатными функциями.
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн