HaK1R
Junior Member | Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору Cosmogor У меня вот так получилось, но я не проверял Код: @ECHO OFF Chcp 1251>nul REM Поиск доступных дисков setlocal enabledelayedexpansion for %%d in (b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z) do dir %%d:>nul 2>&1 && set zz=%%d REM Проверка на наличие папки Backup IF EXIST "%zz%:\Backup" ( REM Проверка на наличие файла TMP.TMP IF EXIST "%zz%:\Backup\TMP.TMP" ( call :FC ) else ( call _TMP call :RAR ) ) else ( REM Создание папки Backup MD "%zz%:\Backup" call _TMP call :RAR ) chcp 866>nul goto :EOF _TMP rem вычисление дня недели для Windows 2000 (в XP должна тоже работать) rem начиная с 2001г. по 2099г. включительно (алгоритм тестировался в Еxcel) rem в конце вычислений %dD% содержит день недели: 0 - понедельник .. 6 - воскресенье rem by othy setlocal SET dt=%Date% SET dY=%dt:~-2% SET dD=%dt:~-10,2% SET dM=%dt:~-7,2% If "%dD:~0,1%" == "0" Set dD=%dD:~1,1% If "%dM:~0,1%" == "0" Set dM=%dM:~1,1% If "%dY:~0,1%" == "0" Set dY=%dY:~1,1% SET /A fY="dY & 0x03" If %dM%==1 (If %fY%==0 (Set /A dD+=4) else Set /A dD+=5) If %dM%==2 (If %fY%==0 (Set /A dD+=7) else Set /A dD+=8) If %dM%==3 (Set /A dD+=8) If %dM%==4 (Set /A dD+=11) If %dM%==5 (Set /A dD+=6) If %dM%==6 (Set /A dD+=9) If %dM%==7 (Set /A dD+=11) If %dM%==8 (Set /A dD+=7) If %dM%==9 (Set /A dD+=10) If %dM%==10 (Set /A dD+=5) If %dM%==11 (Set /A dD+=8) If %dM%==12 (Set /A dD+=10) SET /A dD=(dD+dY/4+dY) %% 0x07 echo %dD% >"%zz%:\Backup\TMP.TMP" endlocal goto :EOF :FC call _TMP fc /l "%zz%:\Backup\D.TMP" "%zz%:\Backup\TMP.TMP" if errorlevel 1 ( FORFILES /p "%zz%:\Backup" /m *.rar /d -3 /c "cmd /c del /f /q @file" DEL /Q "%zz%:\Backup\TMP.TMP" REN "%zz%:\Backup\D.TMP" "TMP.TMP" call :RAR ) else ( call :EXIT ) goto :EOF :EXIT msg * Сегодняшние архивы есть, выходим!. DEL /Q "%zz%:\Backup\TMP.TMP" REN "%zz%:\Backup\D.TMP" "TMP.TMP" goto :EOF :RAR RAR.EXE a "%zz%:\Backup\Рабочий_стол" -r -m0 -ep1 o+ -ag_YYYY.MM.DD-HH.MM "%USERPROFILE%\Рабочий стол" RAR.EXE a "%zz%:\Backup\Мои_документы" -r -m0 -ep1 o+ -ag_YYYY.MM.DD-HH.MM "%USERPROFILE%\Мои документы" msg * Архивирование завершено goto :EOF | Добавлено: И по-моему будет лучше если ты переименуешь :EXIT во что-нибудь другое, поскольку exit это встроенная функция и она может вместо твоей свою вызывать | Всего записей: 136 | Зарегистр. 04-05-2009 | Отправлено: 11:56 17-05-2009 | Исправлено: HaK1R, 12:00 17-05-2009 |
|