mardi 17 août 2021

Batch variable isn't what I set

I'm having an issue with the following bit of script:

if %DATE% NEQ %ACTUALDATE% (
    echo DATE DOESNT EQUAL
    pause
    GOTO :SETDATE
    ) ELSE (
    echo DATE EQUALS
    pause
    goto loop
    )

For some reason, the output is always

C:\Users\Tyler\Desktop>if 08172021 NEQ 201 (
echo DATE DOESNT EQUAL
 pause
 GOTO :SETDATE
)  ELSE (
echo DATE EQUALS
 pause
 goto loop
)
DATE DOESNT EQUAL
Press any key to continue . . .

the output should be "if 08172021 NEQ 08172021......." I have no Idea where the var "201" is coming from and I use the same date format in other parts of the script without any issues .

@echo on
set storenum=%computername:~6,2%
set pos1=10.6.%storenum%.20
set pos2=10.6.%storenum%.21
set pinpad1=10.6.%storenum%.15
set pinpad2=10.6.%storenum%.16
set tdstamp1=%date:~4,2%/%date:~7,2%/%date:~10,4% %time:~0,2%:%time:~3,2%:%time:~6,2%

:setdate
set date=%date:~4,2%%date:~7,2%%date:~10,4%
set logfile="C:\Company Name\Device Monitor\Log\%DATE%_DeviceMonitor.log"
echo %tdstamp1% SN-%storenum%-DEVICE MONITOR SERVICE STARTED>> %LOGFILE%

:loop
choice /N /T 5 /D Y >nul
set tdstamp=%date:~4,2%/%date:~7,2%/%date:~10,4% %time:~0,2%:%time:~3,2%:%time:~6,2%
set actualdate=%date:~4,2%%date:~7,2%%date:~10,4%

ping -n 1 %pos1% | find "TTL=" >nul || (
    echo %tdstamp% SN-%storenum%-POS1 OFFLINE >> %LOGFILE%
    echo.>> %LOGFILE%
    )

ping -n 1 %pos2% | find "TTL=" >nul || (
    echo %tdstamp% SN-%storenum%-POS2 OFFLINE >> %LOGFILE%
    echo.>> %LOGFILE%
    )

ping -n 1 %pinpad1% | find "TTL=" >nul || (
    echo %tdstamp% SN-%storenum%-PINPAD1 OFFLINE >> %LOGFILE%
    echo.>> %LOGFILE%
    )

ping -n 1 %pinpad2% | find "TTL=" >nul || (
    echo %tdstamp% SN-%storenum%-PINPAD2 OFFLINE >> %LOGFILE%
    echo.>> %LOGFILE%
    )

if %DATE% NEQ %ACTUALDATE% (
    echo DATE DOESNT EQUAL
    pause
    GOTO :SETDATE
    ) ELSE (
    echo DATE EQUALS
    pause
    goto loop
    )

Aucun commentaire:

Enregistrer un commentaire