Голосование за лучший ответ
Vorona
Профи
(769)
8 месяцев назад
@ECHO OFF
CLS
REM Проверка наличия аргумента - каталога для архивации
IF "%1"=="" GOTO NoDir
REM Архивация файлов в каждом каталоге и подкаталоге
FOR /R "%1" %%G IN (*) DO (
REM Имя архива будет таким же, как и имя каталога, где находится файл
"%2" a "%%~dpG\%%~nxG.zip" "%%G"
)
REM Удаление архивных файлов
FOR /R "%1" %%F IN (*.zip) DO (
REM Удаление архивного файла
DEL "%%F"
)
REM Вывод сообщения об успешном выполнении
ECHO Архивация и удаление завершены.
GOTO End
:NoDir
ECHO Каталог для архивации не указан!
GOTO End
:End
Алекс Куха
Высший разум
(461728)
8 месяцев назад
Странное задание. Ни одного глагола. Навскидку : у разных архиваторов разные параметры, соответственно для каждого надо свой вариант запуска.
call :%2
exit
:rar
%2 a -r %1
exit /b
:zip
%2 %1
exit /b
кстати, не знаю такого архиватора "zip". Как минимум, надо ещё один параметр задать - операция создание или удаление архива
по типу такого:
@ЕСНО OFF
CLS
IF -%1==- GOTO NoDir
RЕМ Вывод меню на экран
ECHO 1 - На экран
ECHO 2 - В файл c:\uses\studentksi\documents\catalog.txt
КЕМ Вывод подсказки для ввода
CHOICE /С 12 Куда выводить содержимое %1
CLS
КЕМ Определение сделанного выбора
IF ERRORLEVEL 2 GOTO DirToFile
IF ERRORLEVEL 1 GOTO DirToCon
ECHO Выбор не был сделан.
GOTO End
:DirToCon
DIR %1 | MORE
GOTO End
:DirToFile
DIR %1 > C:\catalog.txt
GOTO End
:NoDir
ECHO He указан каталог для сканирования!
PAUSE
:End