一個網絡聯通情況測試(定時ping)的bat

一個以前工作時用到的網絡聯通情況測試, 說白了就是隔一段時間ping一下..因爲那時有幾個主機不太穩定,所以在網上找了一下,本來想用pingplus..好像叫超級ping吧.那軟件...    電信那邊的人說看不懂.悶....不得已就搞了這個.bat版的

ServerPingShell.bat (運行時的文件.定義變量的作用)

@echo off
echo ***************************************************************************
echo ** 網絡聯通情況記錄 **
echo ***************************************************************************
echo 程序正在運行中,請稍後…………
set logfile=網絡聯通情況%date:~0,4%%date:~5,2%%date:~8,2%.txt
set pinglog=pinglog.txt
set logfind=logfind.txt
set cmdping=ping
set driver=ip地址:
set timeout=超時情況記錄.txt
set callbatfilename=ServerPing.bat
IF NOT EXIST %logfile% echo IP地址        Average Minimum Maximum Sent Received lost   date      time>>%logfile% & echo -------------------------------------------------------------------------------->>%logfile%
call %callbatfilename% %driver%  [這裏填你要的ip地址,呵呵只一個啊]
exit----------------------------------------------分隔線不包括此行!

ServerPing.bat (ping工作的主要文件,截取導出)

%cmdping% %2 >> %pinglog%
Set temp123=TEMP.txt
FIND /C "Request timed out" %pinglog% > %temp123%
FOR /F "tokens=3" %%i in (%temp123%) do set lv_cnt=%%i
if %lv_cnt% GTR 3 date /t >>%timeout% && time /t >>%timeout% && type %pinglog% >>%timeout% && echo ------------->> %timeout%
find "statistics" %pinglog% >> %logfind%
For /f "skip=2 tokens=4" %%m In (%logfind%) Do set ip=%%m
find "Average" %pinglog% >> %logfind%
For /f "skip=2 tokens=3" %%n In (%logfind%) Do set Average=%%n
For /f "skip=2 tokens=6" %%o In (%logfind%) Do set Minimum=%%o
For /f "skip=2 tokens=9" %%p In (%logfind%) Do set Maximum=%%p
find "Lost" %pinglog% >> %logfind%
For /f "skip=2 tokens=4" %%q In (%logfind%) Do set Sent=%%q
For /f "skip=2 tokens=7" %%r In (%logfind%) Do set Received=%%r
For /f "skip=2 tokens=11" %%s In (%logfind%) Do set lost=%%s
@echo on
if %lv_cnt% EQU 0 echo %ip%  %Average%     %Minimum%   %Maximum%,    %Sent%     %Received%    %lost%) %date% %time% >> %logfile%
if %lv_cnt% GTR 3 echo %ip%       超       時                               %date% %time% >> %logfile%
echo ------------->> %logfile%
@echo off
del %pinglog%
del %logfind%
del %temp123%----------------------------------------------分隔線不包括此行!

HideRunPing.vbs (bat自身不能隱藏,定時會跑出來,很煩.加個vbs來隱藏和定時)

do
Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c ServerPingShell.bat",vbhide
wscript.sleep 300000
loop----------------------------------------------分隔線不包括此行!

就這樣..進行一下HideRunPing.vbs 後每30秒自已ping一次.時間可以自已在vbs文件裏那個wscript.sleep [時間]  改..

導出的效果差不多就是.. 呵呵.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章