Board logo

标题: 可自定生成记录大小和ping的时间长短---自动Ping值统计 [打印本页]

作者: ymtien     时间: 2007-3-27 04:38    标题: 可自定生成记录大小和ping的时间长短---自动Ping值统计

因为工作需要写了这个批处理,给大家参考看看,有部份功能我也是参考别人写的之后再追加功能,所以这个是我修改整合后的加强版本!


REM ------ 自动Ping值统计分页记录 ------

REM 定义视窗大小
title Ping(ICMP)记录器&color 07
@echo off&mode con cols=80 lines=16

@echo off

REM 删除旧记录
cd Record
del *.txt /Q
cd..

REM 定义输入变数
echo.-------- 请输入以下Ping值参数 -------
echo.
set a=
set/p a=[请输入您要Ping的网址或IP]:
echo.
set n=
set/p n=[请输入Ping值统计时间/分钟]:
echo.
set f=
set/p f=[请输入Ping值统计记录档生成间隔/分钟]:
echo.
set s=
set/p s=[请输入Ping Send buffer size/bytes]:
echo.
echo.
echo.→ 开始对[%a%]透过ICMP发送回应请求...
ping 127.1 -n 2 >nul

REM 定义时间变数
  set date1=%date:~0,10%
  set date2=%date1:/=%
  set time1=%time:~0,10%
  set time2=%time1REM =%

REM 宣告Ping值回应变数
set for=于以下IP位置:
set of=的
set with=用
set in=(以
set data:=封包:
set milli-seconds:=毫秒为单位)
set Approximate=大约
set times=时间:
set bytes= bytes=
set round=回应
set trip=花费
set Reply=回应
set from=来自
set timed= 时间:
set out=超过
set statistics=值统计
set Packets:=封包:
set Sent=已发送=
set Received= 已收到=
set Lost= 已丢弃=
set loss)=丢弃)
set Minimum=最小值=
set Maximum= 最大值=
set Average= 平均值=
set TTL= TTL=
setlocal enabledelayedexpansion

REM 宣告分页记录判别变数
set m=1


echo ◎统计时间开始于:%date1% %time1% >> Record/%a%_%date2%_%m%.txt


REM Ping值统计记录开始

Goto loop

REM 宣告档案生成别名变数
:Creat-new-files
set /a m+=1
Set t=0


REM 双回圈判别式
:loop

REM 宣告Ping值统计周期变数      
     set /a r+=1
     set /a t+=1

   REM 写入Ping值记录
    (for /f "delims=" %%i in ('ping -n 30 -l %s% %a%') do (
    set ret=
    for %%a in (%%i) do if defined %%a (set ret=!ret! !%%a!) else set ret=!ret! %%a
    if not "!ret!"=="" (set ret=!ret: time=%time% ! && echo !ret!) else echo.
    )) >> Record/%a%_%date2%_%m%.txt

REM 动态进度表
   cls
   set c=^set /p=■%b%^<nul^&ping/n  127.1^>nul^&
   echo.  
   echo. 【回应地址:%a%  发送封包大小:%s% bytes】
   echo. 【Ping值统计时间:%n%分钟  Ping值统计记录档生成间隔:%f%分钟】
   echo.
   echo.  ※如果要中止执行作业请按[Ctrl+C]!
   echo.
   echo.
   echo.
   echo.  Ping值统计数据记录中 →
   echo.
   color 7
   set/p= <nul&%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%
   echo.  100%%
   echo.
   echo.  完成记录档写入...
   set c=■
            
         REM 写入Ping值记录
           (for /f "delims=" %%i in ('ping -n 30 -l %s% %a%') do (
           set ret=
           for %%a in (%%i) do if defined %%a (set ret=!ret! !%%a!) else set ret=!ret! %%a
           if not "!ret!"=="" (set ret=!ret: time=%time% ! && echo !ret!) else echo.
           )) >> Record/%a%_%date2%_%m%.txt

         REM 动态进度表
           cls
           set c=^set /p=■%b%^<nul^&ping/n  127.1^>nul^&
           echo.  
           echo. 【回应地址:%a%  发送封包大小:%s% bytes】
           echo. 【Ping值统计时间:%n%分钟  Ping值统计记录档生成间隔:%f%分钟】
           echo.
           echo.  ※如果要中止执行作业请按[Ctrl+C]!
           echo.
           echo.
           echo.
           echo.  Ping值统计数据记录中 →
           echo.
           color 7
           set/p= <nul&%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%%c%
           echo.  100%%
           echo.
           echo.  完成记录档写入...
           set c=■
           
REM 判别统计时间已否已?输入时间
   if "%r%"=="%n%" Goto exit  
     REM 判别已?输入的换页储存时间
       if "%t%"=="%f%" Goto  Creat-new-files

goto loop

REM 结束Ping值统计
  :exit
     cls
     echo.
     echo.
     echo.
     echo. ------- Ping值统计程序已完成,稍后程式将自动关闭,谢谢您的使用ByeBye ^^ -------
     ping -n 10 127.1>nul
     taskkill /IM cmd.exe
作者: bjsh     时间: 2007-3-27 05:11
del *.txt /Q

这也太......

万一这个目录下还有有用的.txt呢;..............
作者: ymtien     时间: 2007-3-27 05:33
你可以更改不要像我一樣把執行都把舊的記綠檔都砍了..這只是給大家參考!