У меня есть пакетный сценарий для проверки состояния задачи, выполняемой планировщиком задач, и состояния пакетного файла, а также состояния балансировщика сетевой нагрузки.

мой вопрос:

Шаг 1:- Я хочу проверить состояние задачи (health.bat), запущенной в планировщике задач, если она включена или находится в состоянии готовности, затем перейдите и проверьте шаг 2

Шаг 2:- здесь мне нужно проверить состояние балансировщика сетевой нагрузки (NLB), если он находится в конвергентном состоянии, затем перейти и выйти или запустить -> health.bat -> если ошибки нет -> начать NLB или еще -> отправить письмо с сообщением об ошибке

Проблема с этим кодом:-

Код запускается для вызова health.bat, затем он переходит к запуску NLB даже при сбое health.bat:

   @echo off
    setlocal enableextensions enabledelayedexpansion
    set itemail="mailid"
    FOR /F "usebackq" %%i IN (`hostname`) DO SET host=%%i
    ::set host=%COMPUTERNAME%
    set TASKNAME1=health
    c:
    cd\
    cd batch
    :: Checking is wscheck is disabled
    schtasks.exe /query  /tn "%TASKNAME1%" >CheckTS.txt 2>&1  
    findstr "Running Ready" CheckTS.txt
    if %errorlevel% NEQ 0 ( 
    schtasks.exe /change /ENABLE /TN "%TASKNAME1%" >CheckTS.txt
    schtasks.exe /query  /tn "%TASKNAME1%" >>CheckTS.txt
    wmailto %itemail% -s"The Task health has been enabled on %host%." -tCheckTS.txt
    )
    :: Checking if the node is stared
    NLB.exe query >CheckNLB.txt 2>&1
    findstr /L /c:"converged" CheckNLB.txt
    if %errorlevel% NEQ 0 (
    call health.bat
    findstr /L /c:"<--FAIL-->" health.txt 
   if !errorlevel! NEQ 0 ( 
    wmailto %itemail% -s"DOWN The node %host% cannot be started as the health failed." -thealthstatus.txt
    goto :exit
    )
    NLB.exe start >CheckNLB.txt
    TIMEOUT /T 10
    NLB.exe query >>CheckNLB.txt
    wmailto %itemail% -s"The NLB has been Started on %host%." -tCheckNLB.txt
    )


    :exit
    pause

0