[CMD] ARJ - не распаковываются некоторые из архивов

Maksim222

Новый пользователь
Сообщения
14
Реакции
0
Доброе время суток. Просьба знающих помочь мне. Такая задача - на работе приходят архивы по типу mz????01.742. Эти архивы я переименовываю в mz????01.ARJ, распаковываю - внутри либо архивы AFN_MIFNS00_???????_????????_?????.ARJ, либо файл IZV*.xml - эта xml мне не интересна). Далее, все архивы AFN_MIFNS00_???????_????????_?????.ARJ я распаковываю в текущий каталог и копирую в нужную папку (D:\440\Input\текущая_дата\1\XML сюда если принимаю файлы в 1 раз за день, D:\440\Input\текущая_дата\2\XML сюда если 2раз за день). Внутри AFN архивов файлы с расширениями XML и VRB. На XML стоит проверка в виде батника по бракованным файлам. Он запускается самым последним. Всего 5 батников в цепочке
Проблема в следующем - написал батник, но почему-то батник распаковывает только 1 архив AFN из нескольких, а не все 4 архива.
Знаю, очень муторное дело, но в друг кто-то поймет в чем ошибка. Батники в приложении. Архивы не могу скинуть, только скрины. На скрине лога я красным выделил архив который распаковался
 

Вложения

  • batniki.7z
    1.5 KB · Просмотры: 4
  • 1.PNG
    1.PNG
    21.1 KB · Просмотры: 78
  • 2.PNG
    2.PNG
    18.7 KB · Просмотры: 83
  • 3.PNG
    3.PNG
    34.3 KB · Просмотры: 76
  • лог.PNG
    лог.PNG
    71.8 KB · Просмотры: 81
Здравствуйте, @Maksim222 !

Выполните отладку.
Добавьте echo к командам:
CMD/BATCH:
for %%e in (AFN*.ARJ) do echo call D:\440_Extract4.cmd %%e
(440_Extract1.cmd)

посмотрите, что передаётся.
Потом уберите его, и поставьте в:
CMD/BATCH:
echo arj32 e %1 D:\440\Input\%date:~6,4%%date:~3,-5%%date:~0,-8%\2\XML\
(440_Extract4.cmd)

И ещё концевые пробелы поубирайте со строк с arj32
 
Для отладки надо отдельный батник писать?
1 скрин - добавил эхо в extract1. В итоге, 4 батник даже не запустился.
2 скрин - добавил эхо к arj32 в extract4 . Все работает так же как и до добавления эхо.
3 скрин - в 4м батнике пути в строках с arj32 указал в кавычках. Уже прогресс, батник заметил остальные 3 архива, но ни один не распаковался
 

Вложения

  • 1.PNG
    1.PNG
    67.1 KB · Просмотры: 76
  • 2.PNG
    2.PNG
    70.9 KB · Просмотры: 74
  • 3.PNG
    3.PNG
    93.5 KB · Просмотры: 88
Нужен не этот лог, а то что показывает консоль.
Ну или перенаправьте вывод в файл >> файл.txt

1 скрин - добавил эхо в extract1. В итоге, 4 батник даже не запустился.
и не должен был.
 
В логе 2 записи
1 - добавил вывод в файл на команду "for %%e in (AFN*.ARJ) do echo call D:\440_Extract4.cmd %%e" (видно, что есть обращение к 4м архивам)
2- итоги второй записи изображены на скринах эхо и эхоarj, а также в логе.
 

Вложения

  • эхо.PNG
    эхо.PNG
    44.7 KB · Просмотры: 85
  • эхоarj.PNG
    эхоarj.PNG
    13.9 KB · Просмотры: 79
  • logs.txt
    1.2 KB · Просмотры: 3
Удалите все echo, которые добавляли.
И замените в батнике Brak440
CMD/BATCH:
exit
на
CMD/BATCH:
exit /b

P.S. Если что-то будет не получаться, рекомендую сверить пути и по возможности передавать батникам по цепочке полные пути (и в кавычках), а не относительные.
Соответственно, в этом случае внутри батника раскрывать аргументы через такой синтаксис: "%~1"
 
Последнее редактирование:
Ух, насиделся я с этими батниками. Пытаюсь следовать вашим советам, каждый раз новые проблемы выходят. Давайте по-порядку:
1) 3 скрин - поставил кавычки в путях
2) 2 скрин - в 4м батнике прописал аргументы "%~1". После этого ничего не поменялось.
3) Потом я заметил в командной строке какую-то странность при работе архиватора. Запускаю отдельно 4й батник и вижу ошибку (скрин7). Сам код батника на скрине 6. Я думал что при команде "arj32 e %~1 "D:\440\Input\%date:~6,4%%date:~3,-5%%date:~0,-8%\1\XML\" файлы из AFN архивов будут распаковываться в папку XML. Решил поэкспериментировать .
4) Скопировал все архивы в папку XML(скрин 4) и произошло чудо - архивы распаковались, НО! в корневой каталог D:\ (скрин 5). Не понимаю как это работает. К тому же, почему батник ругается на архивы mz*. ARJ? (скрин 1) Они ведь тоже ARJ.

PS Я тут заметил, что на моем компе винда 64х разрядная. А на других компах, где в данный момент работают другие батники и предполагается запускать мой текущий горе-батник для распаковки, 32х разрядные версии. Там и архиваторы стоят arj32. На моем компе тоже arj32. Я сразу не посмотрел разрядность.
 

Вложения

  • 1.PNG
    1.PNG
    16.7 KB · Просмотры: 81
  • 2.PNG
    2.PNG
    47.2 KB · Просмотры: 76
  • 4.PNG
    4.PNG
    37.6 KB · Просмотры: 73
  • 5.PNG
    5.PNG
    27.9 KB · Просмотры: 84
  • 3.PNG
    3.PNG
    93 KB · Просмотры: 75
  • 7.PNG
    7.PNG
    20.6 KB · Просмотры: 89
  • 6.PNG
    6.PNG
    43.6 KB · Просмотры: 74
Последнее редактирование:
Ну сами смотрите. Я не знаю, что вы такое сделали, что теперь в батник передаётся пустой аргумент.
Если всё изначально работало нормально, то и не нужно ничего было менять. Вся проблема была в команде exit.

А по первому скрину
По коду - сделали всё не так как я писал. Я писал "%~1", вы решили по-своему %~1
Если пишет, что не опознан как ARJ. Вариантов много:

1) Устаревшая версия arj
2) повреждён arj-архив
3) На самом деле "не arj"

Почему бы не выбросить архиватор arj, и не заменить на универсальный 7zip ?
 
Да вот так получается что батника и небыло изначально. Пришлось с нуля делать для упрощения работы. Архивы изначально даже не в ахривном формате приходят, а с расширением ".742" . Работаю с Центробанком, архиватор представлен им же. Поэтому не получается выбросить его.
Все равно, спасибо за помощь, буду дальше пробовать. Проверю батники еще раз по вашим советам
 
Просто не торопитесь. Поубирайте @echo off, чтобы все команды были видны.
Проверяйте каждую ошибку. Ни одной не должно быть. И у каждой своё логичное объяснение. Проверяйте каждую строку.
Проверьте ключевые команды отдельно, без батника.
Я максимум, что могу, подключиться к вашему домашнему компу и там посмотреть, что вы делаете.
На данном этапе, трудно сказать чисто по логам из-за чего появились новые ошибки.
Разрядность здесь вряд ли играет какую-то роль.
 
Назад
Сверху Снизу