1 (изменено: alexii, 2014-12-07 13:19:18)

Тема: CMD/BAT: Архивирования с помощью ARJ

Помогите разобраться с батником, задание такое

Написать bat-файл для архивирования с помощью программы arj.
В случае пропуска имени архива работа
должна проводиться со всеми архивами в текущем каталоге.
Считать, что имя архива имеет расширение ARJ

Есть готовый батник, но не могу с ним никак разобраться, а точнее не могу заставить его работать, может чего то не хватает в коде или еще что


@echo off
set arj32path=C:\ARJ32.EXE
set sw= 
set fnames= 
set arname= 
set com=%1
if %com%-==ac- goto param
if %com%-==a- goto param
if %com%-==c- goto param
if %com%-==d- goto param
if %com%-==e- goto param
if %com%-==f- goto param
if %com%-==l- goto param
if %com%-==m- goto param
if %com%-==t- goto param
if %com%-==u- goto param
if %com%-==v- goto param
if %com%-==x- goto param
if %com%-==-?- goto info1
goto info
:param
shift
if -%1==- goto param1
if %1==-c goto setsw
if %1==-e goto setsw
if %1==-f goto setsw
if %1==-g goto setsw
if %1==-i goto setsw
if %1==-m goto setsw
if %1==-n goto setsw
if %1==-r goto setsw
if %1==-u goto setsw
if %1==-v goto setsw
if %1==-w goto setsw
if %1==-x goto setsw
if %1==-y goto setsw
if %1==-hk goto setsw
for %%f in (*.arj) do if "%1"=="%%f" goto setarname
set fnames=%fnames% %1
goto param
:setarname
set arname=%1
goto param
:setsw
set sw=%sw% %1
goto param
:param1
if "%arname%"==" " goto allfiles
%arj32path% %com% %sw% %arname% %fnames%
goto exit
:allfiles
for %%f in (*.arj) do %arj32path% %com% %sw% %%f %fnames%
goto exit
:info
%arj32path%
goto exit
:info1
%arj32path% -?
:exit
Pause

2

Re: CMD/BAT: Архивирования с помощью ARJ

Помогите разобраться с батником, задание такое



Написать bat-файл для архивирования с помощью программы arj.

Чего и куда архивировать?

3

Re: CMD/BAT: Архивирования с помощью ARJ

alexii пишет:

Помогите разобраться с батником, задание такое



Написать bat-файл для архивирования с помощью программы arj.

Чего и куда архивировать?

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

4

Re: CMD/BAT: Архивирования с помощью ARJ

Следующий вопрос. Как понимать это:

В случае пропуска имени архива работа
должна проводиться со всеми архивами в текущем каталоге.

Используйте заглавные буквы в начале предложений и точки — в конце.

5

Re: CMD/BAT: Архивирования с помощью ARJ

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

6

Re: CMD/BAT: Архивирования с помощью ARJ

если мы не указываем имя архива, то будем произведена та же работа с каждым архивом в каталоге.

В «1.arj» добавляем «2.arj» и «3.arj».

Затем в «2.arj» добавляем «1.arj» (в котором уже содержатся как минимум «2.arj» и «3.arj») и «3.arj».

Затем в «3.arj» добавляем «1.arj» (в котором уже содержатся «2.arj» и «3.arj») и «2.arj» (в котором уже находятся и «1.arj», и сам бывший «2.arj», и «3.arj»).

Вы понимаете всю бессмысленность данных действий?!

7

Re: CMD/BAT: Архивирования с помощью ARJ

alexii пишет:

если мы не указываем имя архива, то будем произведена та же работа с каждым архивом в каталоге.

В «1.arj» добавляем «2.arj» и «3.arj».

Затем в «2.arj» добавляем «1.arj» (в котором уже содержатся как минимум «2.arj» и «3.arj») и «3.arj».

Затем в «3.arj» добавляем «1.arj» (в котором уже содержатся «2.arj» и «3.arj») и «2.arj» (в котором уже находятся и «1.arj», и сам бывший «2.arj», и «3.arj»).

Вы понимаете всю бессмысленность данных действий?!

Прекрасно понимаю, но что я могу поделать, если такое задание.

8

Re: CMD/BAT: Архивирования с помощью ARJ

Спасибо за помощь, разобрался сам.