Как протестировать rar-архив консольной командой из 1С? #413935


#0 by Дух1984
Как протестировать rar-архив консольной командой из 1С? По документации тестирование архива выполняется такой командой: C:Program FilesWinrar ar.exe t c:data.rar но мне непонятно что с этим делать из 1С?
#1 by Man4kin
хм, а что мешает так сделать ? КомандаСистемы("C:Program FilesWinrar ar.exe t c:data.rar")
#2 by Дух1984
делаю...но возвращается тока ответ прошла команда или нет, а не результат тестирования архива
#3 by Дух1984
простите, просто неверно сформулировал вопрос. Попробую так: Как в 1С получить результат тестирования rar-архива?
#4 by Man4kin
ааааааа, нужно узнать результат, битый архив или нет ?
#5 by Дух1984
...если тестирование производится консольной командой
#6 by Дух1984
ага
#7 by vcv
смотри ключи ilog, ierr
#8 by Дух1984
не получается почему-то:
#9 by Дух1984
верен ли синтаксис?
#10 by Дух1984
никакого файла не создается, хотя архив наверняка битый - в блокноте сам бил :)
#11 by vcv
На сколько помнится, команды ilog ierr работают только в зарегистрированной версии. Может в этом дело?
#12 by Дух1984
супер...а крякнутую rar не считает зарегистрированной? :)
#13 by Дух1984
ОК...а если обхитрить? как сделать батник, который в случае ошибки сам создаст log файл?
#14 by acsent
C:Program FilesWinrar ar.exe t c:data.rar > C:log.txt
#15 by vcv
не могу точно сказать про рар, нету его. Вот, например, 7-zip, сухо, комфортно и легально :-) Потом читаешь test.log, ищешь строку "Everything is Ok". Если есть - все нормально, если ее нет, можно показывать пользователю журнал с ошибками.
#16 by Дух1984
Лог создается пустым. Что может быть?
#17 by vcv
Права проверь. Если ты пробуешь , то писать лог с корень диска С совсем нехорошая затея. Пиши лучше в %TEMP%
#18 by vde69
ЗАЧЕМ? телепатирую, что траблы с обменом! для себя дано решил проблемму пересылки файлов, с вероятностью 99.99% файл всегда нормальный -
#19 by Дух1984
Пофигу куда писать - сам файл лога создается, но пустой по-любому
#20 by vcv
Обмен в 1С обычно происходит посредством ZIP-архивов, а не RAR. в любом случае 100% надежная пересылка файлов совсем не избавляет от необходимости делать проверку входящих данных перед загрузкой в программу :-)
#21 by Дух1984
Так какие есть идеи?
#22 by vcv
Попробуй с командной строки. Мне вот не удается заставить делать пустой файл, все время получается только нормальный. Ты RAR-ом делаешь? Может у него какая-то фишка/настройка есть, что он все в stderr валит, а stdout пустой. Попробуй выполнить из командной строки и посмотреть, что выводится на экран. Переназначить stdout (>test.log), переназначить stderr (2>test.log)
#23 by vde69
распоковку с последующем удалением архива, и проверку удалился-ли файл или нет, только не забудь сделать паузу позле завершения работы рара, 1 сек достаточно. Там грабли с кешем есть.
#24 by Дух1984
без вывода в файл выдает сообщение  о том что файл не является архивом и нет файлов для екстракта, с выводом в файл выдает пустую строку
#25 by Дух1984
Стал писаться лог вот в этом случае: C:> cd c:Program FilesWinRAR c:Program FilesWinRAR> rar.exe t c:data.rar > C:loglog.txt
#26 by Дух1984
а вот в этом не хочет, причем если в логе что-то есть, то затирает: c:Program FilesWinRAR ar.exe t c:data.rar > C:loglog.txt
#27 by revolt
Попробуй скормить вот эту строку КомандаСистемы("""c:Program FilesWinRAR ar.exe"" t c:data.rar > C:loglog.txt");
#28 by Дух1984
Супер! Все пошло! Спасибо! А можно получить объяснение - с чего вдруг?..
#29 by revolt
в пути к файлу используются пробелы, поэтому такое случается =)
#30 by Дух1984
Понял, спс!
#31 by vcv
Такая команда означает c:Program FilesWinRAR ar.exe t c:data.rar > C:loglog.txt Что ты хочешь запустить программу "c:Program" и передать ей параметры "FilesWinRAR ar.exe" "t" "c:data.rar" и перенаправить стандартный вывод команды в "C:loglog.txt". Так как программы "c:Program" не существует, в стандартный вывод (stdout) выводится нифига, а в вывод ошибок (stderr) ошибка ""c:Program" не является внутренней или внешней командой, исполняемой программой или пакетным файлом."
#32 by vcv
Кстати, попробуй опять вариант с ilog и ierr. Проблема, как выяснили, была в отсутствии ковычек, может все и заработает.
#33 by Дух1984
Спасибо, экспериментировать не буду, т.к. метод c:Program FilesWinRAR ar.exe t c:data.rar > C:loglog.txt с кавычками отлично подошел :)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям