Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   [решено] Запускать программу по времени (http://forum.oszone.net/showthread.php?t=339516)

Patroklos 04-03-2019 19:40 2861264

Запускать программу по времени
 
Здравствуйте, подскажите как лучше всего решается следующая задача:
1) Запускаем .bat
2) Проверяем время
3) Если время между 09 - 15 часами идём goto Work else goto Loop
Заранее спасибо за помощь.

megaloman 04-03-2019 21:16 2861290

Patroklos, Не знаю, что Вы имеете ввиду под Work и Loop, вот вариант
Код:

@Echo Off
cls
        Set "Time1=09:00"
        Set "Time2=22:00"
        Set "Delim=:"

        Call :TCount "%%Time1:%Delim%=%%00" "T1"
        Call :TCount "%%Time2:%Delim%=%%00" "T2"

        Set "T=%Time:~0,-3%"
        Call :TCount "%%T:%Delim%=%%" "T"

        If %T% LSS %T1% Call :Loop &GoTo :Eof
        If %T% GTR %T2% Call :Loop &GoTo :Eof

        If %T1% LEQ %T% If %T% LEQ %T2% Call :Work
Exit /B 0

:TCount
SetLocal
        Set "T=%~1"
        Set "T=00%T: =%"
EndLocal &Set /A %~2=1%T:~-6%
Exit /B 0

:Loop
        Echo Loop %T1:~1% %T:~1% %T2:~1%
        Pause
GoTo :Eof

:Work
        Echo Work %T1:~1% %T:~1% %T2:~1%
        Pause
GoTo :Eof


Iska 04-03-2019 21:18 2861292

Код:

@echo off
setlocal enableextensions enabledelayedexpansion

for /f "usebackq delims=:" %%i in (`time /t`) do set "sHours=%%i"
if defined sHours if "%sHours%" geq "09" if "%sHours%" lss "15" (
        echo goto :Work
)
echo goto :Loop

endlocal
exit /b 0


megaloman 04-03-2019 21:29 2861299

Patroklos, А время 15:59 принадлежит интервалу между 09 и 15 или нет?

Patroklos 04-03-2019 21:44 2861308

Цитата:

Цитата megaloman
А время 15:59 принадлежит интервалу между 09 и 15 или нет? »

Мне поминутная точность не важна. Спасибо.


Время: 23:18.

Время: 23:18.
© OSzone.net 2001-