Archivi tag: riavvio

Riavvio pianificato rapido

scheduleVorreste programmare un riavvio rapidamente?

Usate un batch di Windows!

Ecco come fare:

per programmare un riavvio una tantum del computer aprite il blocco note ed incollate il contenuto seguente in un file schedula.bat.

Lanciate il file, impostate l’ora ed il gioco è fatto!

Potrete poi rilanciare il batch ogni volta che avrete bisogno di un riavvio programmato.

@echo off
SETLOCAL
SET /P RestartHour=Inserire ora del riavvio (es.04 per le 4 di mattina) includendo lo zero se necessario 


SET /a TEST=%RESTARTHOUR%

IF "%TEST%"=="-1" (
schtasks /query /tn ScheduledRestart >NUL 2>&1 && schtasks /Delete /tn ScheduledRestart /F || echo "Nessuna schedulazione presente" 
exit /b
)

IF %TEST% GEQ 24 (
    echo ORARIO NON AMMESSO!
    exit /b
)
SET NOWTIME=%TIME:~0,2%%TIME:~3,2%
SET SCHTIME=%RestartHour%00
SET today=%date%

CALL:DateToJDN %today% todayNo
SET /a tomorrowNo=todayNo+1

CALL:JDNToDate %tomorrowNo% tomorrow

IF %NOWTIME% GEQ %SCHTIME% (
    echo Schedulato riavvio domani alle %SCHTIME:~0,2%:00
    set SCHDAY=%TOMORROW:~0,2%/%TOMORROW:~3,2%/%TOMORROW:~6,4%
) ELSE (
    echo Schedulato riavvio oggi alle %SCHTIME:~0,2%:00
    set SCHDAY=%DATE:~0,2%/%DATE:~3,2%/%DATE:~6,4%
)    
schtasks /create /f /tn ScheduledRestart /tr "shutdown /r /t 120 /c """Reboot from RMM""" /f" /sc minute /mo 1 /st %RestartHour%:00:00 /et %RestartHour%:02:00 /z /SD %SCHDAY%  /RL HIGHEST /RU SYSTEM >NUL
echo.
echo.
echo SCHEDULAZIONI:
schtasks | findstr ScheduledRestart
echo.
echo.
echo RICORDA:
echo Per cancellare questa schedulazione lanciare lo script inserendo come orario -1 
echo Per vedere le schedulazioni lanciare il comando: schtasks | findstr ScheduledRestart

GOTO:EOF

:::::Converte la data in numero

:DateToJDN dd.mm.yyyy jdn=
setlocal
set date=%1
set /A yy=%date:~-4%, mm=1%date:~-7,2% %% 100, dd=1%date:~-10,2% %% 100
set /A a=mm-14, jdn=(1461*(yy+4800+a/12))/4+(367*(mm-2-12*(a/12)))/12-(3*((yy+4900+a/12)/100))/4+dd-32075
endlocal & set %2=%jdn%
exit /B

:::::Converte il numero in data

:JDNToDate jdn dd.mm.yyyy=
setlocal
set /A l=%1+68569,n=(4*l)/146097,l=l-(146097*n+3)/4,i=(4000*(l+1))/1461001,l=l-(1461*i)/4+31,j=(80*l)/2447,dd=l-(2447*j)/80,l=j/11,mm=j+2-(12*l),yy=100*(n-49)+i+l
if %dd% lss 10 set dd=0%dd%
if %mm% lss 10 set mm=0%mm%
endlocal & set %2=%dd%.%mm%.%yy%
exit /B

endlocal

.

.

.

.

.

.

.

.

.

.

.