Keresés

Új hozzászólás Aktív témák

  • BigBlackDog

    veterán

    válasz Baryka007 #504 üzenetére

    Restart0-ra megy rá minden óra 0-kor. Az actmin és a filemin értékét a 2. és a harmadik bekezdésben számítom.

    set actmin=%acttime:~3,2%
    IF "%actmin:~0,1%"=="0" SET /a actmin=%actmin:~1,1%

    FOR %%f IN (%actfolder%) DO SET filedatetime=%%~tf
    ...
    set filemin=%filedatetime:~15,2%
    IF "%filemin:~0,1%"=="0" SET filemin=%filemin:~1,1%

  • BigBlackDog

    veterán

    Adott egy program, aminek folyamatosan futnia kell, percenként írja az egyik mappa tartalmát. Ha nem működik megfelelően, akkor rövid időn -1-3 perc- belül újra kell indítani. A "nem működést" legegyszerűbb módon úgy tudom észlelni, hogy a mappa módosítási dátuma legalább 2 perccel korábbi .Ennek észlelését és a program újraindítást egy batch scripttel szeretném megoldani.
    Az újraindítás rendben működik, azonban valamiért néhány óránként, egész óra nulla perckor is szeretné újraindítani a programot. Elvileg az if elágazás miatt ez nem történhetne meg, mivel a %actmin% változó értéke nulla. Mi lehet a hiba a scriptben? Előre is köszönöm a válaszokat!
    A kód így néz ki:

    set mypath=c:\MyFolder\
    set actfolder=%mypath%%1

    :loop
    set acttime=%time%
    set acthour=%acttime:~0,2%
    IF "%acthour:~0,1%"=="0" SET /a acthour=%acthour:~1,1%
    set actmin=%acttime:~3,2%
    IF "%actmin:~0,1%"=="0" SET /a actmin=%actmin:~1,1%

    FOR %%f IN (%actfolder%) DO SET filedatetime=%%~tf
    set /a filehour=%filedatetime:~12,2%
    IF "%filehour:~0,1%" == "0" SET filehour=%filehour:~1,1%
    set filemin=%filedatetime:~15,2%
    IF "%filemin:~0,1%"=="0" SET filemin=%filemin:~1,1%

    if actmin GTR 2 goto after2mins
    goto ok

    :after2mins
    if %acthour% NEQ %filehour% goto restart0

    set /a firstmin=%actmin%-2
    if %filemin% LSS %firstmin% goto restart1
    goto ok

    :restart0
    color C
    echo Restart0 @ %date% %time%
    echo Restart0 @ %date% %time%, Act: %acthour%:%actmin%, File: %filehour%:%filemin%, Acttime: %acttime%, Filedatetime: %filedatetime% >> MyLog.log
    goto sleep

    :restart1
    color C
    echo Restart1 @ %date% %time%
    echo Restart1 @ %date% %time%, Act: %acthour%:%actmin%, File: %filehour%:%filemin%, Firstmin: %firstmin% >> MyLog.log
    goto sleep

    : ok
    cls
    color A
    echo Acttime: %acthour%:%actmin%
    echo Folder modified time: %filehour%:%filemin%
    echo OK
    if exist %mypath%MyLog.log (
    echo LOG EXISTS!!!
    color e
    )
    goto sleep

    :restart
    REM Ez mukodik
    goto loop

    :sleep
    sleep 60
    goto loop

Új hozzászólás Aktív témák

Hirdetés