中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » 论坛回收站 » 解释一下这个脚本,Hanyeguxing写的。
作者:
标题: 解释一下这个脚本,Hanyeguxing写的。 上一主题 | 下一主题
chen8919043
初级用户





积分 20
发帖 21
注册 2010-5-20
状态 离线
『楼 主』:  解释一下这个脚本,Hanyeguxing写的。

@echo off&setlocal enabledelayedexpansion
for /F "skip=4 tokens=1,2*"     # 这里没有delims,那是以什么为分隔符的?token=1,2* 这个是获取第一个符号和第二个符号。2*怎么理解?
%%a in ('ipconfig') do
set c=%%c                       # c=变量c,c的内容是什么呢?
set c=!c:*:=!                   # 把 *:替换成空?
set c=!c:~1,-1!                 # 从第一位起到倒数第二位
if /i "%%a%%b"=="IPAddress." if not "!c:~0,3!"=="192" echo.!c!       #这里又有%%b,现在%%a是ipconfig的内容,%%b,%%c是什么?
pause


这个脚本是提取出WAN IP

C:\Documents and Settings\Administrator>ipconfig

Windows IP Configuration


Ethernet adapter lan:

   Connection-specific DNS Suffix  . :
   IP Address. . . . . . . . . . . . : 192.168.1.2
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . :

Ethernet adapter wan:

   Connection-specific DNS Suffix  . :
   IP Address. . . . . . . . . . . . : 161.129.223.119
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : 161.129.223.254

2010-5-25 18:18
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jarry0932
初级用户





积分 128
发帖 122
注册 2009-9-21
状态 离线
『第 2 楼』:  

请看for/?里面的例子

2010-5-25 19:12
查看资料  发送邮件  发短消息 网志  OICQ (274997087)  编辑帖子  回复  引用回复
Hanyeguxing
银牌会员

正在学习中的菜鸟...


积分 1039
发帖 897
注册 2009-3-1
来自 在地狱中仰望天堂
状态 离线
『第 3 楼』:  

以行“   IP Address. . . . . . . . . . . . : 161.129.223.119”这行为例:
1,不使用delims时,for /f以空格和制表符分隔
2,tokens=1,2*表示第一列给%%a ,第二列给%%b,后面的全部给%%c,%%c内部没有被分隔,即%%a为IP,%%b为Address.,%%c为. . . . . . . . . . . : 161.129.223.119
3,set c=%%c,因为%%a等本身不能被截取、替换,所以需要赋值为普通变量名
4,set c=!c:*:=!,以第一个:为分隔,只要:后面的,这时c为161.129.223.119
5,set c=!c:~1,-1! ,161.129.223.119的前面有一个空格,后面有一个回车符,都删除。
6,if /i "%%a%%b"=="IPAddress." ,定义条件为 IP Address 这行
7,if not "!c:~0,3!"=="192",排除192开头的IP,因为这个是内网的

[ Last edited by Hanyeguxing on 2010-5-25 at 19:16 ]



批处理之家 http://bbs.bathome.net/forum-5-1.html
2010-5-25 19:14
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
chen8919043
初级用户





积分 20
发帖 21
注册 2010-5-20
状态 离线
『第 4 楼』:  

Hanyeguxing
明白了。谢啦!

2010-5-25 19:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


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



论坛跳转: