Маришка, непонятки с выбором архиватора - в 1-м посте заявлен RAR, а в примере ARJ. Вот вариант с ARJ32. Путь к архиватору должен быть прописан в переменной PATH, либо нужно в командной строке указать полный путь к ARJ32.EXE.
читать дальше »
Код:
![Выделить весь код](images/misc/selectcode.png)
:: %1 - путь к flash-диску (F:)
:: %2 - путь к рабочему каталогу (С:\FLASH_TEMP)
:: подавление вывода команд на экран
@echo off
:: проверка переданных параметров
if "%~2"=="" (
echo Не заданы параметры скрипта. Процесс прерван.[/color]
pause>Nul
exit
)
:: проверка наличия рабочего каталога
if not exist "%~2" (set "YN=Y"
) else set/p YN="Обнаружен рабочий каталог. Перезаписать? [YN]: "
:: удаление рабочего каталога в зависимости от выбора пользователя
if exist "%~2" if /i "%YN%"=="Y" (RD /S/Q "%~2") else (
echo Процесс прерван пользователем.
pause>Nul
exit
)
:: копирование в рабочий каталог
xcopy /s/r/h/y "%~1\*" "%~2\"
if errorlevel 1 (
echo Ошибка копирования. Процесс прерван.
pause>Nul
exit
)
:: форматирование flash-диска
Echo Y|format "%~1" /Q /FS:FAT32 /V:BAT
if errorlevel 1 (
echo Ошибка форматирования "%~1". Процесс прерван.
pause>Nul
exit
)
:: переход в рабочий каталог
pushd "%~2"
if errorlevel 1 (
echo Ошибка перехода в рабочий каталог "%~2". Процесс прерван.
pause>Nul
exit
)
:: архивация в 1-й группы
arj32 m "group1.arj" "data*" -r -p1
if errorlevel 1 (
echo Ошибка архивации файлов 1-й группы. Процесс прерван.
pause>Nul
exit
)
:: архивация в 2-й группы
arj32 m "group2.arj" "*" -r -p1 -xGroup1.arj
if errorlevel 1 (
echo Ошибка архивации файлов 2-й группы. Процесс прерван.
pause>Nul
exit
)
:: перемещение архивов на flash-диск
move /-y group?.arj "%~1"
if errorlevel 1 (
echo Ошибка перемещения архивов. Процесс прерван.
pause>Nul
exit
)
:: возвращение в каталог с батником
popd
:: удаление рабочего каталога
rd /s/q "%~2"
:: выход
exit