想编写一个自动修改计算机名和IP。DNS等的BAT。。
重点在于能在一个TXT文件中找到对应网段中的计算机以分配IP地址。
比如TXT文件如下:
GateWay: 192.168.0.(?) // 0 网段机器的IP列表。
User001=1
User002=2
GateWay: 192.168.1.(?) // 1 网段机器的IP列表。
User003=3
User004=4
::: User004=4 表示 计算机名称为User004的机器IP尾数为4
如果现在我要分配的机器名称是User004 ,怎么让其自动识别自身所在的网段?
\\ 该功能我以用VBS实现..但我相信DOS下一定还是有解决办法的..
以下是我今天上午编写的一个要求输入计算机名称和网段数及网关尾数的BAT.
**************************************************
@cls
@color 2f & Title IP地址修改工具
@echo off
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
@echo ※请输入您要定义的计算机名称. ※
@echo ※ ※
@echo ※ (例:PC-01;User001;) ※
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Set /p User=""
@cls
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
@echo ※请输入您当前使用的网段. ※
@echo ※ ※
@echo ※ (例:192.168.1.245,请输入1;192.168.0.245,请输入0;) ※
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Set /p aidi2=""
@cls
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
@echo ※请输入你网关地址的最后一位数. ※
@echo ※ ※
@echo ※ (例:192.168.1.245,请输245;) ※
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Set /p GateWay=""
@cls
Set NetMask=255.255.255.0
Set DNS1=61.153.177.196
Set DNS2=61.153.177.197
rem 如果您的DNS地址不是以上所示,请自行更改.
Set Aidi=192.168
IF Exist Name.ax Del Name.ax
Find /i "%User%" ip.ax >>Name.ax
For /f "skip=2 tokens=2 delims==\" %%A in (Name.ax) Do Set aidi3=%%A
@ipconfig /all >ipconfig.ax
@if exist name.pak del name.pak
@find "Ethernet adapter" ipconfig.ax>>name.pak
@for /f "skip=2 tokens=3,4 delims=: " %%A in (name.pak) do set Name=%%A %%B
@cls
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
@echo ※您的计算机名称是 "%User%" ※
@echo ※您的IP地址是 "%aidi%.%aidi2%.%aidi3%" ※
@echo ※您的子网掩码是 "%NetMask%" ※
@echo ※您的网关地址是 "%aidi%.%aidi2%.%GateWay%" ※
@echo ※您的DNS地址分配为 "%DNS1%,%DNS2%" ※
@echo ※ 当前网卡: "%Name%" ※
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
@echo ※ 确认无误后请按任意键执行修改操作.否则请停止该程序. ※
@pause >log.pak
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
@echo ※ ※
@echo ※ 程序正在执行操作,请稍候....... ※
@echo ※ ※
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName /t reg_sz /d %User% /f >log.pak
@netsh interface ip set address "%Name%" static %aidi%.%aidi2%.%aidi3% %NetMask% %aidi%.%aidi2%.%GateWay% 1 >log.pak
@netsh interface ip set dns "%Name%" static %DNS1% >log.pak
@netsh interface ip add dns "%Name%" %DNS2% >log.pak
@cls
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
@echo ※ 恭喜您!修改成功了. ※
@echo ※ ※
@echo ※ 该程序由韩和编写制作.您可以传播本程序,但请保留本版权信息! ※
@echo ※ ※
@echo ※ 按任意键退出程序 ※
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
@pause >log.pak
@if exist name.pak del name.pak
@if exist ipconfig.ax del ipconfig.ax
@if exist Name.ax del Name.ax
@if exist log.pak del log.pak
重点在于能在一个TXT文件中找到对应网段中的计算机以分配IP地址。
比如TXT文件如下:
GateWay: 192.168.0.(?) // 0 网段机器的IP列表。
User001=1
User002=2
GateWay: 192.168.1.(?) // 1 网段机器的IP列表。
User003=3
User004=4
::: User004=4 表示 计算机名称为User004的机器IP尾数为4
如果现在我要分配的机器名称是User004 ,怎么让其自动识别自身所在的网段?
\\ 该功能我以用VBS实现..但我相信DOS下一定还是有解决办法的..
以下是我今天上午编写的一个要求输入计算机名称和网段数及网关尾数的BAT.
**************************************************
@cls
@color 2f & Title IP地址修改工具
@echo off
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
@echo ※请输入您要定义的计算机名称. ※
@echo ※ ※
@echo ※ (例:PC-01;User001;) ※
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Set /p User=""
@cls
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
@echo ※请输入您当前使用的网段. ※
@echo ※ ※
@echo ※ (例:192.168.1.245,请输入1;192.168.0.245,请输入0;) ※
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Set /p aidi2=""
@cls
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
@echo ※请输入你网关地址的最后一位数. ※
@echo ※ ※
@echo ※ (例:192.168.1.245,请输245;) ※
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Set /p GateWay=""
@cls
Set NetMask=255.255.255.0
Set DNS1=61.153.177.196
Set DNS2=61.153.177.197
rem 如果您的DNS地址不是以上所示,请自行更改.
Set Aidi=192.168
IF Exist Name.ax Del Name.ax
Find /i "%User%" ip.ax >>Name.ax
For /f "skip=2 tokens=2 delims==\" %%A in (Name.ax) Do Set aidi3=%%A
@ipconfig /all >ipconfig.ax
@if exist name.pak del name.pak
@find "Ethernet adapter" ipconfig.ax>>name.pak
@for /f "skip=2 tokens=3,4 delims=: " %%A in (name.pak) do set Name=%%A %%B
@cls
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
@echo ※您的计算机名称是 "%User%" ※
@echo ※您的IP地址是 "%aidi%.%aidi2%.%aidi3%" ※
@echo ※您的子网掩码是 "%NetMask%" ※
@echo ※您的网关地址是 "%aidi%.%aidi2%.%GateWay%" ※
@echo ※您的DNS地址分配为 "%DNS1%,%DNS2%" ※
@echo ※ 当前网卡: "%Name%" ※
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
@echo ※ 确认无误后请按任意键执行修改操作.否则请停止该程序. ※
@pause >log.pak
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
@echo ※ ※
@echo ※ 程序正在执行操作,请稍候....... ※
@echo ※ ※
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
Reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName /t reg_sz /d %User% /f >log.pak
@netsh interface ip set address "%Name%" static %aidi%.%aidi2%.%aidi3% %NetMask% %aidi%.%aidi2%.%GateWay% 1 >log.pak
@netsh interface ip set dns "%Name%" static %DNS1% >log.pak
@netsh interface ip add dns "%Name%" %DNS2% >log.pak
@cls
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
@echo ※ 恭喜您!修改成功了. ※
@echo ※ ※
@echo ※ 该程序由韩和编写制作.您可以传播本程序,但请保留本版权信息! ※
@echo ※ ※
@echo ※ 按任意键退出程序 ※
@echo ※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※※
@pause >log.pak
@if exist name.pak del name.pak
@if exist ipconfig.ax del ipconfig.ax
@if exist Name.ax del Name.ax
@if exist log.pak del log.pak
