[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] 批处理怎样ping IP.txt内的IP然后对不通的进行tracert跟踪?

大家好!最近公司服务器增加,需要每天进行检查,在每台PC上对服务器集群进行ping然后输出一个txt文件(里面只显示最后结果的四行),然后对ping不通的进行tracert路由跟踪结果输出到另一个txt文件。请大侠们帮忙帮我写一个批处理,本人对批处理真是不懂啊

那位大侠帮帮忙。主要是都需要输出txt文件

TOP

不懂就去学。

TOP

回复 2# 小柒


    除了“输出txt文件”之外,其它部分你已经写好了吗?把代码发出来吧,我试试帮你修改一下

TOP

复杂点的可以考虑用编程语言,下面是aardio代码实现的多线程PING工具
从文本中载入IP地址,PING失败界面上IP显示为红色,同时 tracert结果输出到IP同名txt文件。



import win.ui;
/*DSG{{*/
var winform = win.form(cls="ING_FORM";text="PING测试";right=599;bottom=399;border="dialog frame";max=false)
winform.add(
listbox={cls=
"listbox";left=6;top=9;right=588;bottom=386;bgcolor=16777215;edge=1;items={};ownerDraw=true;z=1}
)
/*}}*/

//设定自绘每行的高度
winform.listbox.onMeasureItem = function(measureItem){
    measureItem.itemHeight = 16;  
}

//自绘列表项
winform.listbox.onDrawItem = function(drawItem){
   
var text = winform.listbox.getItemText( drawItem.itemID + 1 )
    ::SetTextColor(drawItem.hDC,winform.listbox.ipColors[drawItem.itemID + 1] ) ;
    :rawText(drawItem.hDC,text,#text,drawItem.rcItem,0x20
/*_DT_SINGLELINE*/)
}
winform.show()
  
//显示PING结果
import thread.command;
winform.listbox.ipColors = {};
thread.command().ping =
function(ip,reply){
   
if( reply ){
        winform.listbox.add(ip)
        winform.listbox.ipColors[winform.listbox.count] = 0xF00
    }
   
else {
       winform.listbox.add(ip +
" tracert...")
       winform.listbox.ipColors[winform.listbox.count] = 0x0f0
    }
}

//创建PING线程
import thread.works;
var work = thread.works( 2,
   
function( ip ) {
        
import icmp.ping;
        
import thread.command;
        
import process.popen;
        
        
var ping = icmp.ping();
        
        
for(i=1;4;1){
            
if( ping.perform(ip) ){
                thread.command.post(
"ping",ip, string.format( "Reply from %s: bytes=%d time=%dms TTL=%d"
                    , ping.ip , #ping.requestData  , ping.echoReply.roundTripTime , ping.echoReply.options.ttl )  )
               
return;
            }  
            
sleep(10)
        }  
        
        thread.command.post(
"ping",ip );
        
var prcs = process.popen(,"tracert",ip);
        
var file = io.open("/" + ip + ".txt","a+b");
        
for( all,out,err in prcs.each() ){
            file.write( out,err );
            file.flush();
        }
        file.close();
        prcs.close();
    }
);

//添加PING任务
work.push("bbs.aau.cn")
work.push(
"www.baidu.com")

//如果需要从文本载入IP地址,这样写
if( io.exist("\ip.txt") ){
   
for ip in io.lines("\ip.txt") {
        work.push(ip);
    }
}
work.waitClose();
winform.msgbox(
"后台线程任务已全部完成");

win.loopMessage();
1

评分人数

TOP

回复 5# klv


    谢了!我还是先好好学学吧!先写了一个让他们先用着您这个我先收起来等我学明白了再好好分析。感谢!

TOP

返回列表