2015-07-06 94 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%