![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-13 22:45 |
共 47,812 主题排行 / 349,916 发帖 / 今日 0 篇 / 48,268 会员排行 |
| 论坛回收站 » 解释一下这个脚本,Hanyeguxing写的。 |
| 可打印版本 1,781 / 3 |
| 第1楼 chen8919043 | 发表于 2010-05-25 18:18 |
| 初级用户 发帖 21 积分 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 |
|
| 第2楼 jarry0932 | 发表于 2010-05-25 19:12 |
| 初级用户 发帖 122 积分 128 | |
|
请看for/?里面的例子
|
|
| 第3楼 Hanyeguxing | 发表于 2010-05-25 19:14 |
| 银牌会员 发帖 897 积分 1,039 来自 在地狱中仰望天堂 | |
|
以行“ 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 ] |
|
| 第4楼 chen8919043 | 发表于 2010-05-25 19:51 |
| 初级用户 发帖 21 积分 20 | |
|
Hanyeguxing
明白了。谢啦! |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |