Cosmogor
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору REM @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" GOTO TMP_TMP IF NOT EXIST "%zz%:\Backup" GOTO MD EXIT :TMP_TMP REM Проверка на наличие файла TMP.TMP IF EXIST "%zz%:\Backup\TMP.TMP" GOTO FC IF NOT EXIST "%zz%:\Backup\TMP.TMP" GOTO D_TMP EXIT :MD REM Создание папки Backup MD "%zz%:\Backup" GOTO D_TMP EXIT _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 RAR EXIT :FC 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\D.TMP" endlocal fc /l "%zz%:\Backup\D.TMP" "%zz%:\Backup\TMP.TMP" if not errorlevel 1 GOTO EXIT GOTO NO EXIT :EXIT msg * Сегодняшние архивы есть, выходим!. DEL /Q "%zz%:\Backup\TMP.TMP" REN "%zz%:\Backup\D.TMP" "TMP.TMP" EXIT :NO 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" GOTO RAR EXIT :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%\Мои документы" GOTO END EXIT :END msg * Архивирование завершено EXIT rem Pause |