中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » (已解决) 求助.3.29更新: 根据 主机名修改IP 的批处理
作者:
标题: (已解决) 求助.3.29更新: 根据 主机名修改IP 的批处理 上一主题 | 下一主题
jckjuc
初级用户

白小痴


积分 48
发帖 23
注册 2006-9-16
状态 离线
『楼 主』:  (已解决) 求助.3.29更新: 根据 主机名修改IP 的批处理

本人连续几天在各大网站和搜索下都没法得到答案。所以只有劳烦各位大侠帮

下小菜菜啦。


正题: :P




我想知道要怎样才能 根据预先设定的主机名 来更改IP? 

比如我设定了 主机名是 001 的IP 是192.168.0.201
            002 的IP 是192.168.0.202


如何实现???


不好意思,本人表达能力不是很好。:(

简单的就是说我设定好
001=192.168.0.201
002=192.168.0.202
003=192.168.0.3
004=192.168.0.4
005=192.168.0.5
.................... 
...

当我运行批处理文件后就会根据主机名而修改成对应的IP


关于 2 楼 everest79 大侠所写的好像不起作用。运行后一点改变都没有。
希望能说下使用方法。  而且网吧有500多台电脑,我要先把所有主机名和对应的IP的先写到批处理,等GHOST完后,运行批处理而根据主机名自动修改对应IP

而且 everest79 大侠的批处理也没有修改DNS 和备用DNS。 
希望everest79 大侠和各位高手能不能再帮下忙?





下面附一个段修改主机名的批处理:
希望各位能接着下完成上面 根据主机名而修改成对应的IP

当我输入001 就要把IP修改成 192.168.0.201
当我输入003 就要把IP修改成 192.168.0.3
当我输入225   就要把IP修改成 192.168.1.25
(反正这个在批处理文档中先预设好了,到时根据主机名自动修改)

子掩码为 255.255.254.0
DNS均为 202.96.128.86
     202.96.3128.166


特别注意:下面的批处理会自动在你输入的机号前加 “ gyq-“ 




@color c
@cls :::清屏
@echo ---------------------------------------------------
@set/p 机号= 请输入计算机号:
@echo ---------------------------------------------------

@echo Windows Registry Editor Version 5.00 >pc.reg
@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName] >>pc.reg

::::用变量""去替换实际的机器名
@echo "ComputerName"="gyq-%机号%" >>pc.reg
@echo [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] >>pc.reg

::::用变量"机号"去替换实际的机器名
@echo "NV Hostname"="gyq-%机号%" >>pc.reg
@echo "Hostname"="gyq-%机号%" >>pc.reg
regedit /s pc.reg
del PC.reg

[ Last edited by jckjuc on 2007-3-31 at 02:49 PM ]

2007-3-26 14:58
查看资料  发短消息 网志  OICQ (251938794)  编辑帖子  回复  引用回复
everest79
金牌会员

一叶枝头,万树皆春



积分 2564
发帖 1127
注册 2006-12-25
状态 离线
『第 2 楼』:  


@echo off&set connectionname=本地连接&set gw=
for /f "skip=2 tokens=1,2 delims==" %%a in ('find /i "%computername%" %~nx0) do (
if not "%%a%%b" == "" (
netsh interface ip set address "%connectionname%" static %%b 255.255.255.0 %gw%)
)
goto :eof

以下为配置
computer001=192.168.1.1
...


   此帖被 +5 点积分     点击查看详情   
评分人:【 lxmxn 分数: +5  时间:2007-3-26 23:31


2007-3-26 22:23
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jckjuc
初级用户

白小痴


积分 48
发帖 23
注册 2006-9-16
状态 离线
『第 3 楼』:  

先谢谢。测试下。行了再来告诉大家。 谢了

2007-3-27 14:30
查看资料  发短消息 网志  OICQ (251938794)  编辑帖子  回复  引用回复
lxmxn
版主




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


  先在单个主机上面执行netsh命令,看看有没有效果。


2007-3-28 01:51
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jckjuc
初级用户

白小痴


积分 48
发帖 23
注册 2006-9-16
状态 离线
『第 5 楼』:  

详细怎么操作啊?不是很懂。能否清晰点,最好是把批处理写出来。

或是有个仔细的思路说明。让我自己研究。先谢

2007-3-28 01:54
查看资料  发短消息 网志  OICQ (251938794)  编辑帖子  回复  引用回复
lxmxn
版主




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


  先试试这个:netsh interface ip set address=<ip> mask=<smIP>


2007-3-28 02:31
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
jckjuc
初级用户

白小痴


积分 48
发帖 23
注册 2006-9-16
状态 离线
『第 7 楼』:  

还是不行。管理员和各位版主、高手能否再给多点提示?最好详细点的。

真的找了很长时间都找不到。才会麻烦大家的。谢了

2007-3-28 11:53
查看资料  发短消息 网志  OICQ (251938794)  编辑帖子  回复  引用回复
jckjuc
初级用户

白小痴


积分 48
发帖 23
注册 2006-9-16
状态 离线
『第 8 楼』:  

可能大家还不是很明白我的表达意思。不好意思,本人表达能力一点都不好。



其实是很简单,就是有N台电脑,我先把 什么主机名对应什么IP 写好。

等到GHOST后 再改一下主机名,然后批处理就会根据主机名而查找出我预先写好在批处理中的对应IP 修改 

[ Last edited by jckjuc on 2007-3-28 at 12:07 PM ]

2007-3-28 11:54
查看资料  发短消息 网志  OICQ (251938794)  编辑帖子  回复  引用回复
chenall
银牌会员




积分 1276
发帖 469
注册 2002-12-23
来自 福建泉州
状态 离线
『第 9 楼』:  

我来贴一个吧,请根据需要进行修改.
由于使用的中文的变量,所以应该很好理解.
当然为了兼容性,你可以自己修改为英文变量.
补一下,由于你没有提供网关,有可能是忘了.或者是不需要设定这个网关.
如果不需要只需将相应的行删除即可.
不设网关set 网关=XXX这一行和
"%网关% 1"字符可以删除

  Quote:

  1. @echo off
  2. set 接口名称=本地连接
  3. set 子网掩码=255.255.254.0
  4. set DNS1=202.96.128.86
  5. set DNS2=202.96.128.166
  6. set 网关=192.168.0.201
  7. set 本机IP=
  8. for /f "usebackq tokens=2 delims==" %%i in (`type 设定文件^|find /i "%computername:~-3%"`) do set 本机IP=%%i
  9. if not defined 本机IP goto :没有设定
  10. echo %time%        正在设定 %接口名称%
  11. echo                 本机IP:        %本机IP%
  12. echo                 子网:        %子网掩码%
  13. echo                 网关:        %网关%
  14. echo                 DNS1:        %DNS1%
  15. ECHO                 DNS2:        %DNS2%
  16. netsh interface ip set address "%接口名称%" static %本机IP% %子网掩码% %网关% 1
  17. netsh interface ip set dns "%接口名称%" static %DNS1%
  18. netsh interface ip add dns "%接口名称%" %DNS2%
  19. GOTO :EOF
  20. :没有设定
  21. echo.
  22. echo.
  23. echo %time%        出错了!在设定文件中找不到本机对应的IP地址.
  24. pause

        CHENALL发表于:  2007-03-28  01:58

[ Last edited by chenall on 2007-3-28 at 03:12 PM ]

   此帖被 +2 点积分    点击查看详情   
评分人:【 jckjuc 分数: +2  时间:2007-3-29 00:33




QQ:366840202
http://chenall.net
2007-3-28 15:09
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (366840202)  编辑帖子  回复  引用回复
jckjuc
初级用户

白小痴


积分 48
发帖 23
注册 2006-9-16
状态 离线
『第 10 楼』:  

谢谢 chenall兄弟, 先自己试下.不行再来麻烦大家 .... 谢谢

2007-3-29 11:35
查看资料  发短消息 网志  OICQ (251938794)  编辑帖子  回复  引用回复
jckjuc
初级用户

白小痴


积分 48
发帖 23
注册 2006-9-16
状态 离线
『第 11 楼』:  

9楼的 chenall 大侠的帮助好像让我非常接近成功了.可就是看了很久,测试了也不少时间还是搞得不是很明白.


能否再一整段命令行都写出来看下. 就是我预先设置的IP应该在那里设置?第8行那句命令也搞不懂.(本人真的很菜)


好人就做底了吧.好吗? 呵呵......  先谢    各位大侠也要帮下忙啊.  再谢下

2007-3-30 03:01
查看资料  发短消息 网志  OICQ (251938794)  编辑帖子  回复  引用回复
chenall
银牌会员




积分 1276
发帖 469
注册 2002-12-23
来自 福建泉州
状态 离线
『第 12 楼』:  

能否再一整段命令行都写出来看下. 就是我预先设置的IP应该在那里设置?第8行那句命令也搞不懂.(本人真的很菜)
是指什么?
预先设置的IP应该放在另一个文件中.文件名可以自定.
比如文件名为 IPC.TXT
内容类似
001=192.168.0.201
002=192.168.0.202
003=192.168.0.3
004=192.168.0.4
005=192.168.0.5

只需更改第8行的"设定文件"为你的文件名即可,这里就改为 "IPC.TXT"
这个设定文件要和批处理放在同一个目录下.

关于第8行的简单解释.
for /f "usebackq tokens=2 delims==" %%i in (`type 设定文件^|find /i "%computername:~-3%"`) do set 本机IP=%%i

从 设定文件 中查找计算机名的后3位.(也就是00X之类的)然后将查找到的内容以=分附隔的第二段的值设为变量 本机IP
比如计算机名为gyq-002 设定文件里面也有002=192.168.0.202
就是在设定文件里面找002,就找到这一行 002=192.168.0.202
以=分隔的第二段就是192.168.0.202

   此帖被 +2 点积分    点击查看详情   
评分人:【 jckjuc 分数: +2  时间:2007-3-30 12:17




QQ:366840202
http://chenall.net
2007-3-30 05:38
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (366840202)  编辑帖子  回复  引用回复
jckjuc
初级用户

白小痴


积分 48
发帖 23
注册 2006-9-16
状态 离线
『第 13 楼』:  

感谢 chenall兄弟的多次相助。 还有通过远程协助帮助解决问题。

感谢DOS联盟论坛里的成员。谢谢各位管理员和版主。

再次谢谢chenall

2007-3-31 14:51
查看资料  发短消息 网志  OICQ (251938794)  编辑帖子  回复  引用回复

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


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



论坛跳转: