@rem Salvataggio Office per date @rem aggiornato al 30/03/2016 @rem salva @rem - d:\DATI\ @rem - d:\PRIVATI\ @rem - d:\MEDIAZIONE\ @Setlocal EnableDelayedExpansion @rem by Andrea 30/3/2016 @rem ---------------------------------------------------------------------- @rem Partendo dalla data di sistema estrae le variabili DAY, MONTH ed YEAR @rem calcola poi la settimana in cui mi trovo WOM range 1-5 @rem ed infine il giorno della settimana DOW range 1-7 @rem assegna anche EOM e EOW se sono alla fine della settimana e del mese @rem ---------------------------------------------------------------------- @For /F "tokens=1,2,3 delims=/ " %%A in ('Date /t') do @( Set DAY=%%A Set MONTH=%%B Set YEAR=%%C ) @rem %TM:~0,1% si legge come il primo carattere ovvero da OFFSET 0 per 1 Carattere @rem è la correzione per eliminare lo 0 in testa alle date @set TM=%MONTH% @set TM=%TM:~0,1% @if %TM% == 0 ( set /a NMONTH=%MONTH:~1,1% ) else ( set NMONTH=%MONTH%) @set TM=%DAY% @set TM=%TM:~0,1% @if %TM% == 0 ( set /a NDAY=%DAY:~1,1% ) else ( set NDAY=%DAY%) @Set /a WEEK = ( NDAY - 1 ) / 7 @Set /a DOW = %NDAY% - ( %WEEK% * 7 ) @rem --- controlla fine mese e fine settimana @set EOW=0 @set EOM=0 @if %DOW% == 7 ( Set EOW = %WEEK%) @for %%A in (11 4 6 9) do @if %NMONTH% == %%A ( if %NDAY% == 31 ( set EOM=%NMONTH%) ) @for %%A in (1 3 5 7 8 10 12) do @if %NMONTH% == %%A ( if %NDAY% == 30 ( set EOM=%NMONTH%) ) @for %%A in (2) do @if %NMONTH% == %%A ( if %NDAY% == 28 ( set EOM=%NMONTH%) ) @echo DAY(%DAY%) MONTH(%MONTH%) WEEK(%WEEK%) DOW(%DOW%) End Of Month EOM(%EOM%) End Of Week EOW(%EOW%) @rem ---------------------------------------------------------------------- @set SRC=\\192.168.200.2 @set TRG=\\192.168.200.3\Zip @set PRG=\\127.0.0.1\Manutenzione\AggiornaPL\7z.exe @set LOG7Z=\\192.168.200.3\Zip\Log\log-7z.txt @set LOGFILE=\\192.168.200.3\Zip\Log\log.txt @set LOGMAIL=\\192.168.200.3\Zip\Log\log-mail.txt @set TOEML="" @set BODY=Vedi Log allegato:%LOG7Z% @set SUBJECT=ColGeoMB_Backup_Giornalieri_QNAP-zip @echo %DATA% >%LOG7Z% @del smtp-??.log @call :ZIPPONE PRIVATI @call :ZIPPONE MEDIAZIONE @call :ZIPPONE DATI @if !ERRORE!A == A ( @set MSG=OK: ) else ( @set MSG=!ERRORE! ) @echo %MSG% %DATA% >>%LOGFILE% gmail.exe %TOEML% "%MSG% %SUBJECT%" "%BODY%" "%LOG7Z%" >> %LOGMAIL% @goto FINE :ZIPPONE @set BKUPSRC=%SRC%\%1\*.doc* %SRC%\%1\*.xsl* %SRC%\%1\*.pdf @set BKUPFILE=%TRG%\%1\%1-Day-%DOW%.7zippato @set BKUPWEEK=%TRG%\%1\%1-Week-%WEEK%.7zippato @set BKUPMONTH=%TRG%\%1\%1-Month-%MONTH%.7zippato %PRG% a -t7z "%BKUPFILE%" -r %BKUPSRC% >>%LOG7Z% @if %ERRORLEVEL% == 0 ( @echo OK; %DATA%; %1 >>%LOGFILE% ) else ( set ERRORE=!ERRORE! Errore in: %DATA% @echo ERROR; %DATA%; %1 >>%LOGFILE% ) @if %EOW% GTR 0 copy %BKUPFILE% %BKUPWEEK% @if %EOM% GTR 0 copy %BKUPFILE% %BKUPMONTH% @EXIT /B !ERRORLEVEL! :FINE @rem EOF Backup_QNAP_Giornalieri.bat