中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 技术探讨:编写批处理程序来ping一定ip段内存活主机
« [1] [2] »
作者:
标题: 技术探讨:编写批处理程序来ping一定ip段内存活主机 上一主题 | 下一主题
redtek
金牌会员





积分 2902
发帖 1147
注册 2006-9-21
状态 离线
『第 16 楼』:  

多谢lxmxn鼓励~:)


回PPdos兄:

%~s0    就是批处理自己的名字。更详细内容见 For /?  帮助的最后一部分帮助内容:)

Start  %~s0 用Start运行批处理文件自身(相当于又运行了一个“自己”,与当前正在运行的自身无关)。
        
%1     参数,批处理运行时所带入的参数。
        如果 Copy a.txt  d:\ 的命令执行时,则Copy命令后面加的参数: a.txt 就相当于 %1 , d:\就相当于%2



关于 && 与  ||  等操作在下面的贴子非常全面的列表~:)

DOS 符号的问题 (详见第4楼)

http://www.cn-dos.net/forum/viewthread.php?tid=24289&fpage=1




关于%1应用在判断/开关等更复杂的操作以及参数次序的问题,下面贴子很精彩~:)

[原创]批处理参数问题一点谈
http://www.cn-dos.net/forum/viewthread.php?tid=17785




其它的内容可能有与之相关的,在下面的一个索引贴子里~:)

[简单索引]SET变量、延时变量、各种符号的用法

http://www.cn-dos.net/forum/view ... =%E7%AE%80%E5%8D%95

[ Last edited by redtek on 2006-12-28 at 11:05 AM ]



    Redtek,一个永远在网上流浪的人……

_.,-*~'`^`'~*-,.__.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._,_.,-*~'`^`'~*-,._
2006-12-29 00:03
查看资料  发送邮件  发短消息 网志   编辑帖子
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 17 楼』:  



  Quote:
Originally posted by PPdos at 2006-12-28 10:26:
Redtek兄所写精短之作着实让我研究好几天 而又无果 才知批处理之深邃....

希望能得各位指点,疑惑有三:

1.变量 %1在此是何意义

2.虽知start不支持頮..


  都是基础啊……
  
  1、%1 代表运行某程序的第一个参数。

  2、start 不是不支持长文件名,而是运行带有空格路径的程序一般会出错,加上%~s0,得到的是程序的短路径,这样,就不会在路径中出现 空格或者其它特殊的符号以致于start命令的运行失败。

  3、&& 的作用是前面的命令运行成功之后才执行后面的命令,所以当ping成功了才写内容到文件中,基本上是可以判断存活主机的。


   此帖被 +5 点积分      点击查看详情   
评分人:【 redtek 分数: +5  时间:2006-12-29 00:07


2006-12-29 00:05
查看资料  发送邮件  发短消息 网志   编辑帖子
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 18 楼』:  


  啊,我又慢了兄一步了,呵呵,看来要努力了~


2006-12-29 00:06
查看资料  发送邮件  发短消息 网志   编辑帖子
007dna1
新手上路





积分 19
发帖 15
注册 2008-3-31
状态 离线
『第 19 楼』:  



  Quote:
Originally posted by redtek at 2006-12-27 02:41 AM:
这个好玩~:)
再来一个254线程扫描的,嘿嘿~:)

(用 Start 模拟 254线程,扫描 1-254 台主机约为 20 秒)


(运行前注意: 运行后同 ...

第一句 if [%1]==[] (Goto:Start) else (Goto:Ping)
符号"["和“]”的作用是???

2008-12-3 01:04
查看资料  发送邮件  发短消息 网志   编辑帖子
007dna1
新手上路





积分 19
发帖 15
注册 2008-3-31
状态 离线
『第 20 楼』:  



  Quote:
Originally posted by redtek at 2006-12-27 02:41 AM:
这个好玩~:)
再来一个254线程扫描的,嘿嘿~:)

(用 Start 模拟 254线程,扫描 1-254 台主机约为 20 秒)


(运行前注意: 运行后同 ...

第一句 if [%1]==[] (Goto:Start) else (Goto:Ping)中
符号"["和“]”的作用是???

[ Last edited by 007dna1 on 2008-12-3 at 01:06 ]

2008-12-3 01:05
查看资料  发送邮件  发短消息 网志   编辑帖子
007dna1
新手上路





积分 19
发帖 15
注册 2008-3-31
状态 离线
『第 21 楼』:  



  Quote:
Originally posted by PPdos at 2006-12-27 03:37 AM:
但如果扫描几万个端口 同时打开几万个窗口好象要自杀?能不能进行对打开start telnet窗口的数量限制呢?虽然连接大约5秒钟后失败退出 但是打开的速度要快吧...

加上红色的那部分代码。。。用ping命令在每打开10个窗口的时候延时一下。。。应该就可以了
@echo off

if [%1]==[] (Goto :Start) else (Goto :Ping)

:Start
        setlocal EnableDelayedexpansion
        set a=0

        echo.ScanTime:%time%>ip.txt&&set "ip=61.149.20"
        for /L %%i in (1,1,254) do (Start %~s0 %ip%.%%i&set /a a=%%i%%10&if !a!==0 ping -n 2 127.0.0.1>nul)
        endlocal

        Goto :eof

:Ping
        ping %1 -n 1 -w 1 >nul&&echo %1 - OK!>>ip.txt
        exit

[ Last edited by 007dna1 on 2008-12-3 at 01:19 ]

2008-12-3 01:16
查看资料  发送邮件  发短消息 网志   编辑帖子
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: