2015-07-06 2 views
0

Мне нужно отслеживать, достигли ли услуги 80% -90%, вместимости, оно отправит предупреждение. И я не могу заставить его работать.Система контроля партийного скрипта

REM dir c:\|find /i "bytes free" >> CDrive.txt 


for /f %%c in (C.txt) do (


set %%c=104847433728 


if %%c LSS 127578980352 (

     echo Drive is not yet full. 


) elseif %%c GEQ 127578980352 (

     if %%c LSS 143526352896 

      echo Send WARNING! 

     if %%c LEQ 159473725441 

      echo Send CRITICAL! 

) 

) 

Endlocal

PAUSE

+0

Возможно, потому что вы используете незаконные утверждения, такие как elseif? В пакете нет 'elseif'. – MichaelS

ответ

0

Предположив выход из dir /-c C:\ |findstr "bytes.free" выглядит следующим образом:

18 Dir(s) 997019979776 bytes free 
    -- ------ ------------ 
^^  ^3rd token 
^^ 2nd token 
^1st token 

Тогда следующий фрагмент кода может работать, хотя есть что-то неясно, для меня в Вашей логике (а именно %%c GTR 159473725441 кейс):

@ECHO OFF 
SETLOCAL enableextensions 
for /f "tokens=3" %%c in ('dir /-c C:\ ^|findstr "bytes.free"') do (
    set "_sizeC=%%c" 
    if %%c LSS 127578980352 (
     echo Drive is not yet full. 
    ) else (
     if %%c LSS 143526352896 (
      echo Send WARNING! 
     ) else if %%c LEQ 159473725441 echo Send CRITICAL! 
    ) 
) 
echo _sizeC=%_sizeC% 
Смежные вопросы