中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 已结:关于自动变换IP地址问题(XP)
« [1] [2] »
作者:
标题: 已结:关于自动变换IP地址问题(XP) 上一主题 | 下一主题
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 16 楼』:  

Re chenhui530:

      你我的方法应该都忽略了连接名中存在空格和冒号的情形,根据你的代码略作修改。

      有趣的是,据此发现 ipconfig 的命令输出中,每行文本的结尾都是两个回车符(0x0D)和一个换行符(0x0A),所以在最初使用 delims=2* 测试时,出现了一系列有趣的设置混乱,比如我可以用它实现隐藏环境变量名的首字符。不过后来记起在论坛中已经有 无奈何 兄首先发现了这个现象,链接如下:

(已结)請問如何抓取文件中的某一行特定文字
http://www.cn-dos.net/forum/viewthread.php?tid=17443#pid102925

      不知这是程序的BUG,还是在某些特殊应用中的特殊需求。不过它确实给我们在批处理中的使用带来了一些小麻烦。
@echo off
for /f "skip=3 tokens=2*" %%a in ('ipconfig') do set AccessName=%%b&& goto AccName2

:AccName2
set AccessName=%AccessName:~0,-2%
echo Access: "%AccessName%"
[ Last edited by willsort on 2005-11-15 at 16:29 ]



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-11-15 16:27
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ronin
中级用户




积分 421
发帖 111
注册 2003-8-29
状态 离线
『第 17 楼』:  

试了下,运行应该没什么问题,有没有考虑到多网卡情况?

2005-11-15 20:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
zreo
初级用户





积分 51
发帖 14
注册 2005-11-6
状态 离线
『第 18 楼』:  



  Quote:
@echo off
for /f "skip=3 tokens=2*" %%a in ('ipconfig') do set AccessName=%%b&& goto AccName2

:AccName2
set AccessName=%AccessName:~0,-2%

我想请问一下。这里的set accessname=%%b 这是为什么。
还有SET accessname=%Accessname:~0,-2%
能跟我讲解一下这个命令吗?

2005-11-17 13:27
查看资料  发短消息 网志   编辑帖子  回复  引用回复
ronin
中级用户




积分 421
发帖 111
注册 2003-8-29
状态 离线
『第 19 楼』:  

在win2000试了,有本地连接2的,出错,参数找到市正确
@echo off
for /f "skip=3 tokens=2*" %%a in ('ipconfig') do set AccessName=%%b&& goto AccName2

:AccName2
set AccessName=%AccessName:~0,-2%
echo Access: "%AccessName%"
set x=%random:~-1%
set x1=%random:~-1%
netsh interface ip set address "%AccessName%"" static 192.168.1.1%x%%x1% 255.255.255.0 192.168.1.1 1

命令运行结果是:指定了无效端口 本地连接 2

2005-11-18 15:46
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ronin
中级用户




积分 421
发帖 111
注册 2003-8-29
状态 离线
『第 20 楼』:  

netsh interface ip set dns "%AccessName%"" static 192.168.1.1,192.168.1.2,192.168.1.3

这样输入多个DNS会出错,怎么来处理

2005-11-18 19:42
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ronin
中级用户




积分 421
发帖 111
注册 2003-8-29
状态 离线
『第 21 楼』:  

netsh interface ip add dns "本地连接" 202.96.128.166
netsh interface ip add dns "本地连接" 211.98.4.1 2
netsh interface ip add dns "本地连接" 211.94.33.193 3

设置多个DNS的批处理,上面分别是电信、铁通、联通DNS

自动设置IP和DNS在XP和WIN2003下已经通过测试,在WIN2000下会出错

2005-11-28 23:08
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
willsort
元老会员

Batchinger


积分 4432
发帖 1512
注册 2002-10-18
状态 离线
『第 22 楼』:  

Re ronin:

      17楼:因为我的测试机不存在多网卡的情形,所以无法测试并加以改进。

      19楼:多连接的情况中存在一个选择策略问题,这个就不是批处理本身的问题了。

      20/21楼:在Win2000下无法通过可能有两个原因:1、不支持或不完整的支持 netsh 命令;2、ipconfig 的输出不同于 XP。等见到使用 netsh 和 ipconfig 的输出结果后再看吧,将之重定向到文本中作为附件上传即可。

Re zero:

      使用 set /? 查阅 set 的命令行帮助便能得到很明确的答案了。

[ Last edited by willsort on 2005-11-30 at 13:23 ]



※ Batchinger 致 Bat Fans:请访问 [讨论]批处理编程的异类 ,欢迎交流与共享批处理编程心得!
2005-11-30 13:22
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
ronin
中级用户




积分 421
发帖 111
注册 2003-8-29
状态 离线
『第 23 楼』:  

1、不支持或不完整的支持 netsh 命令

我估计是这个原因比较多

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


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



论坛跳转: