中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 取得本地2个IP以后,判断内网IP的值再执行操作的问题
作者:
标题: 取得本地2个IP以后,判断内网IP的值再执行操作的问题 上一主题 | 下一主题
THENEWLIFE
初级用户




积分 78
发帖 64
注册 2008-8-29
状态 离线
『楼 主』:  取得本地2个IP以后,判断内网IP的值再执行操作的问题

用 for /f "tokens=2 delims=:" %%a in ('ipconfig /all ^| find /i "ip address" ') do echo %%a 192.168.0.8 59.55.*.* 这样能完成提取出本机IP,但是有2个,不知道怎么把内网IP提出来,再判断其IP地址是不是在120-150之间的IP,如果是的话,就执行一个文件。不是就退出 还请大大帮忙完成这个批


2009-4-2 02:24
查看资料  发短消息  网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 2 楼』:  

for /f "tokens=2 delims=:" %%a in ('ipconfig /all ^| find /i "ip address" ') do set ipd=%%a&goto :skip ::通常第一个应该是内网的,跳过第二个 :skip ::取第四位 for %%a in (%ipd:.= %) do set ipd4=%%a if 1%ipd4% geq 1120 if 1%ipd4% leq 1150 echo 执行一个文件 echo 退出




精简 [你的+我的+他的]=>[大家的] 个人网志
2009-4-2 07:51
查看资料  发送邮件  发短消息  网志  OICQ (37659560)  编辑帖子  回复  引用回复
THENEWLIFE
初级用户




积分 78
发帖 64
注册 2008-8-29
状态 离线
『第 3 楼』:  

for /f "tokens=2 delims=:" %%a in ('ipconfig /all ^| find /i "ip address" ') do set ipd=%%a&goto :skip 这句的意思是把192.168.0.8这个IP赋给 IPD这个变量吧 for %%a in (%ipd:.= %) do set IPD4=%%a (%ipd:.= %)这句是把192.168.0.8中的点(.)用空替换吧,那就变成了(19216808)吧。我看SET中是这么说的%PATH:str1=str2% If 1%ipd4% geq 1120 if 1%ipd4% leq 1150 echo 这句按我的理解因该是:如果IPD这个变量前加1这个变量的值大于1120,如果1%IPD%小于1150的话就执行个文件 我因该知道点你的意思,你因该是想取第4位的值然后和120和150做比较,但是,这样下来不对啊。不知道是不是我哪理解错误了,还请大大指点


2009-4-2 08:23
查看资料  发短消息  网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 4 楼』:  

%ipd:.= %,当中有空格的,是替换为:192 168 0 8,并不是连在一起的




精简 [你的+我的+他的]=>[大家的] 个人网志
2009-4-2 10:15
查看资料  发送邮件  发短消息  网志  OICQ (37659560)  编辑帖子  回复  引用回复
THENEWLIFE
初级用户




积分 78
发帖 64
注册 2008-8-29
状态 离线
『第 5 楼』:  

那这里的 ipd4=%%a就是因该是192.168.0.8吧 If 1%ipd4% geq 1120 if 1%ipd4% leq 1150 echo 这句按我的理解因该是:如果IPD这个变量前加1这个变量的值大于1120,如果1%IPD%小于1150的话就执行个文 那我对这句的理解错了吗,如果没错的话,就因该得不到我要的结果吧


2009-4-2 11:46
查看资料  发短消息  网志   编辑帖子  回复  引用回复
netbenton
银牌会员

批处理编程迷


积分 1916
发帖 752
注册 2008-12-28
来自 广西
状态 离线
『第 6 楼』:  

ipd4=8,而不是:192.168.0.8 你不是指对第四位(8)与120~150比较吗? 如果是就对了,加个1在前面是组合成18,与1120比较的,为了防止为空时出现语法错误才加个1在前面的。 你运行测试一下就知道了,我已经测试过了。 [ Last edited by netbenton on 2009-4-2 at 12:04 ]




精简 [你的+我的+他的]=>[大家的] 个人网志
2009-4-2 13:51
查看资料  发送邮件  发短消息  网志  OICQ (37659560)  编辑帖子  回复  引用回复
THENEWLIFE
初级用户




积分 78
发帖 64
注册 2008-8-29
状态 离线
『第 7 楼』:  

for %%a in (192 168 0 8) 这样就是取 8 出来吗.看FOR的HELP里面好象没看到这样用 你的批测试了,是成功的,非常感谢你孜孜不倦的指导 为什么这句会把8给取出来呢 [ Last edited by THENEWLIFE on 2009-4-3 at 11:53 ]


2009-4-3 01:04
查看资料  发短消息  网志   编辑帖子  回复  引用回复
qindaijun098
新手上路





积分 1
发帖 1
注册 2009-4-3
状态 离线
『第 8 楼』:  

学习了。。。。。


2009-4-4 11:36
查看资料  发送邮件  发短消息  网志   编辑帖子  回复  引用回复

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


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



论坛跳转: