Svjt
Newbie | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору max200701 По вашей просьбе выкладываю скрипты: Основной, запускающий скрипт (самый простой): Код: rem %1-название файлов rem %5-"7" - образы для CD "45"- для DVD call pack.bat %1 call sort.bat %1 %5 call iso.bat %1 | Первый скрипт пакует (pack.bat): Код: set CurData=D:\WORK\bat\%1 rar m -m0 -r -ep1 -sfx -t -v25 %CurData%\%1 %CurData%\ date /t time /t | Второй раскидывает файлы по папкам (sort.bat). Для CD дисков используется число "7", для DVD - "45", т.к. rar заставляем паковать по 100 метров получается 700 или 4500 метров, что и соответствует дискам...: Код: REM за %1 назначаем имя файла т.е. %1.part***.rar set DIR=d:\WORK\bat\%1 set CDPATH=0 set ARPATH=1 REM Определение количества файлов Set Cnt=0 For %%I In (%DIR%\%1*) Do Set /A Cnt += 1 Echo %Cnt% REM Подбор имени архива (Если файлов больше 85 вид будет *.part002.rar), REM а если от 10 до 85 то *part02.rar) if /I %Cnt% LSS 86 (set NAR=.part )else (set NAR=.part0) REM Наименование первого файла set FIRST-AR=%NAR%01.exe REM Определение количества папок set disk=%Cnt% set /a disk/=7 set /a diskT=disk*7 REM Если количество файлов не кратно 7, нужна ещё одна папка if %Cnt%==%diskT% goto start_mkdir set /a disk += 1 REM Создание папок :start_mkdir Echo %disk% if %CDPATH%==%disk% goto end_sort set /a CDPATH += 1 MKDIR %DIR%\cd-%CDPATH% REM Сортировка архивов по папкам :start_mar set /a ARPATH += 1 set /a CDAR=CDPATH*7 REM Выбор имени файла (Меняется количество нулей) if /I %ARPATH% LSS 10 (set arname=%1%NAR%0 ) else (set arname=%1%NAR%) REM Если файлов больше 100 и меньше 999 то сотые файлы будут выглядеть так REM *.part100.rar, поэтому ставим ещё одно условие if /I %ARPATH% GEQ 100 set arname=%1.part move %DIR%\%arname%%ARPATH%.rar %DIR%\cd-%CDPATH%\ if %ARPATH%==%CDAR% goto start_mkdir if /I %ARPATH% GTR %Cnt% goto end_sort goto start_mar :end_sort REM Перенос первого файла move %DIR%\%1%FIRST-AR% %DIR%\cd-1\ | И последний скрипт делает образы, для этого необходима утилитка CDIMAGE.EXE, её могно найти в пакете CDImage (поищите по нету, либо попросите меня, выложу или отправлю) (iso.bat) Код: REM Номер диска SET N=0 Set Cnt=0 SET DIR=D:\WORK\bat\%1 For /D %%I In (%DIR%\cd*) Do Set /A Cnt += 1 Echo %Cnt% :start set /a N += 1 REM Путь к файлам SET DISTR=%DIR%\cd-%N% REM Папка куда упадёт образ SET OUTPUT=%DIR%\ REM Метка тома SET LABEL=GARANT%N% REM Создание ISO CDIMAGE.EXE -l"%LABEL%" -j1 -m "%DISTR%" "%OUTPUT%\%LABEL%.ISO" rd /s /q %DISTR% if %N%==%Cnt% goto end goto start :end | Все скрипты буквально сегодня опробовал - работают... Могет быть несовпадение с путями, но, я думаю, все разберутся, если что... Если вдруг потребуются пояснения - пишите - помогу... P.S. всем спасибо за помощь и практически советы, если кто смогет помочь с улучшениями - буду только рад.. =)) | Всего записей: 17 | Зарегистр. 03-03-2008 | Отправлено: 23:47 20-07-2008 | Исправлено: Svjt, 23:49 20-07-2008 |
|