标题: (已解决) 求助.3.29更新: 根据 主机名修改IP 的批处理
[打印本页]
作者: jckjuc
时间: 2007-3-26 14:58
标题: (已解决) 求助.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 ]
作者: everest79
时间: 2007-3-26 22:23
@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
...
作者: jckjuc
时间: 2007-3-27 14:30
先谢谢。测试下。行了再来告诉大家。 谢了
作者: lxmxn
时间: 2007-3-28 01:51
先在单个主机上面执行netsh命令,看看有没有效果。
作者: jckjuc
时间: 2007-3-28 01:54
详细怎么操作啊?不是很懂。能否清晰点,最好是把批处理写出来。
或是有个仔细的思路说明。让我自己研究。先谢
作者: lxmxn
时间: 2007-3-28 02:31
先试试这个:netsh interface ip set address=<ip> mask=<smIP>
作者: jckjuc
时间: 2007-3-28 11:53
还是不行。管理员和各位版主、高手能否再给多点提示?最好详细点的。
真的找了很长时间都找不到。才会麻烦大家的。谢了
作者: jckjuc
时间: 2007-3-28 11:54
可能大家还不是很明白我的表达意思。不好意思,本人表达能力一点都不好。
其实是很简单,就是有N台电脑,我先把 什么主机名对应什么IP 写好。
等到GHOST后 再改一下主机名,然后批处理就会根据主机名而查找出我预先写好在批处理中的对应IP 修改
[
Last edited by jckjuc on 2007-3-28 at 12:07 PM ]
作者: chenall
时间: 2007-3-28 15:09
我来贴一个吧,请根据需要进行修改.
由于使用的中文的变量,所以应该很好理解.
当然为了兼容性,你可以自己修改为英文变量.
补一下,由于你没有提供网关,有可能是忘了.或者是不需要设定这个网关.
如果不需要只需将相应的行删除即可.
不设网关set 网关=XXX这一行和
"%网关% 1"字符可以删除
Quote: |
- @echo off
- set 接口名称=本地连接
- set 子网掩码=255.255.254.0
- set DNS1=202.96.128.86
- set DNS2=202.96.128.166
- set 网关=192.168.0.201
- set 本机IP=
- for /f "usebackq tokens=2 delims==" %%i in (`type 设定文件^|find /i "%computername:~-3%"`) do set 本机IP=%%i
- if not defined 本机IP goto :没有设定
- echo %time% 正在设定 %接口名称%
- echo 本机IP: %本机IP%
- echo 子网: %子网掩码%
- echo 网关: %网关%
- echo DNS1: %DNS1%
- ECHO DNS2: %DNS2%
- netsh interface ip set address "%接口名称%" static %本机IP% %子网掩码% %网关% 1
- netsh interface ip set dns "%接口名称%" static %DNS1%
- netsh interface ip add dns "%接口名称%" %DNS2%
- GOTO :EOF
- :没有设定
- echo.
- echo.
- echo %time% 出错了!在设定文件中找不到本机对应的IP地址.
- pause
CHENALL发表于: 2007-03-28 01:58 |
|
[
Last edited by chenall on 2007-3-28 at 03:12 PM ]
作者: jckjuc
时间: 2007-3-29 11:35
谢谢 chenall兄弟, 先自己试下.不行再来麻烦大家 .... 谢谢
作者: jckjuc
时间: 2007-3-30 03:01
9楼的 chenall 大侠的帮助好像让我非常接近成功了.可就是看了很久,测试了也不少时间还是搞得不是很明白.
能否再一整段命令行都写出来看下. 就是我预先设置的IP应该在那里设置?第8行那句命令也搞不懂.(本人真的很菜)
好人就做底了吧.好吗? 呵呵...... 先谢 各位大侠也要帮下忙啊. 再谢下
作者: chenall
时间: 2007-3-30 05:38
能否再一整段命令行都写出来看下. 就是我预先设置的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
作者: jckjuc
时间: 2007-3-31 14:51
感谢 chenall兄弟的多次相助。 还有通过远程协助帮助解决问题。
感谢DOS联盟论坛里的成员。谢谢各位管理员和版主。
再次谢谢chenall