[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[已解决]批处理根据MAC地址改计算机名、IP、掩码、网关、DNS

我对DOS不懂,只会些基本的命令,以下的代码谁能帮我精简下?
要能达到改计算机名,IP,掩码,网关,DNS就行,不用检查那么多网卡;删除临时文件和在“开始”菜单的“启动”中创建快捷方式我不需要那么多功能。而且此代码我保存为.BAT执行提示无效的本地连接??
或者哪个兄弟有时间帮重编个,谢谢。
下面还有2个批在附件里,想研究的拿去
  1. @ECHO OFF
  2. @cls
  3. ECHO ::::::::::::::::::::::::::::::::::::::::::::::::::::
  4. ECHO :: GHOST完成后根据网卡MAC自动设置机名和IP的批处理 ::
  5. ECHO ::::::::::::::::::::::::::::::::::::::::::::::::::::
  6. ::::清空环境变量
  7. Set IPAddress=
  8. Set strMac=
  9. Set MacAddress=
  10. Set CName=
  11. Set scfile=
  12. Set sc=
  13. Set MacWMIC=
  14. Set ConnName=
  15. If not "%1"=="run" Goto setboot
  16. cd/d %temp%
  17. REM ::::请手动修改列表
  18. ECHO [ComputerName] [MacAddress] [IPAddress] >iplist.txt
  19. ECHO LX001 00-04-01-02-09-90 192.168.1.1 >>iplist.txt
  20. ECHO LX002 00-04-01-02-09-91 192.168.1.2 >>iplist.txt
  21. ECHO LX003 00-04-01-02-09-92 192.168.1.3 >>iplist.txt
  22. ECHO LX004 00-04-01-02-09-93 192.168.1.4 >>iplist.txt
  23. ECHO LXASP 00-03-FF-93-39-9F 192.168.0.10 >>iplist.txt
  24. REM ::::请手动修改子网掩码
  25. Set mask=255.255.255.0
  26. REM ::::请手动修改默认网关
  27. Set gway=192.168.0.1
  28. ECHO :::: 开始查找网卡 ::::
  29. ::::获取机器的TCP/IP 配置
  30. if exist ipconfig.txt del ipconfig.txt
  31. ipconfig /all >ipconfig.txt
  32. ::::分离出机器的物理地址,并保存到 ( phyaddr.txt) 文件中
  33. if exist phyaddr.txt del phyaddr.txt
  34. if exist phyaddr1.txt del phyaddr1.txt
  35. find "Physical Address" ipconfig.txt >phyaddr.txt
  36. Set sc=1
  37. Set scfile=phyaddr.txt
  38. goto scan
  39. ::::多网卡时,扫描每个网卡MAC地址
  40. :rescan1
  41. Set sc=%sc%1
  42. Set scfile=phyaddr1.txt
  43. find /v "%strMac%" phyaddr.txt >%scfile%
  44. Goto scan
  45. :rescan2
  46. Set sc=%sc%1
  47. Set scfile=phyaddr.txt
  48. find /v "%strMac%" phyaddr1.txt >%scfile%
  49. Goto scan
  50. :scan
  51. ::::从(c:\phyaddr.txt)文件中取得物理地址字符串,并赋给变量"MacAddress"
  52. for /f "skip=2 tokens=12" %%M in (%scfile%) do set strMac=%%M
  53. ::::以变量"strMac"为关键字搜索(iplist.txt)中相同的字符串行,并保存到(PCCfg.txt)
  54. find "%strMac%" iplist.txt >PCCfg.txt
  55. ::::找出机器名(从"PCCfg.txt"中分离出 机器名字段,并赋给变量"CName")
  56. for /f "skip=2 tokens=1" %%N in (PCCfg.txt) do set CName=%%N
  57. if not "%CName%"=="" Goto found
  58. ::::支持最多扫描5个网卡
  59. If "%sc%"=="11111" Goto failed
  60. If "%sc%"=="1" Goto rescan1
  61. if %scfile%==phyaddr.txt Goto rescan1
  62. if %scfile%==phyaddr1.txt Goto rescan2
  63. :found
  64. ECHO 本机 MAC: %strMac%
  65. ECHO 目标名称: %CName%
  66. ::::显示IP地址. (从"PCCfg.txt"中分离出 IP地址字段,并赋给变量"IPAddress")
  67. for /f "skip=2 tokens=3" %%I in (PCCfg.txt) do set IPAddress=%%I
  68. ECHO 目标地址: %IPAddress%
  69. ::::显示网卡MAC地址.(从"PCCfg.txt"中分离出 MAC地址字段,并赋给变量"MacAddress")
  70. for /f "skip=2 tokens=2" %%M in (PCCfg.txt) do set MacAddress=%%M
  71. ECHO 目标 MAC: %MacAddress%
  72. ::::创建注册表文件
  73. ::::用变量"%CName%"去替换实际的机器名
  74. ECHO Windows Registry Editor Version 5.00 >PCName.reg
  75. ECHO.>>PCName.reg
  76. ECHO [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName] >>PCName.reg
  77. ECHO "ComputerName"="%CName%" >>PCName.reg
  78. ECHO.>>PCName.reg
  79. ECHO [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] >>PCName.reg
  80. ECHO "NV Hostname"="%CName%" >>PCName.reg
  81. ECHO "Hostname"="%CName%" >>PCName.reg
  82. ECHO :::: 正在更改设置 ::::
  83. REM ::::导入注册表文件。用的时候把" :: "去掉
  84. regedit /s PCName.reg
  85. ::::找出MAC地址所对应的连接名称
  86. for /f "tokens=1,2,3,4,5,6 delims=-" %%A in ("%MacAddress%") do set MacWMIC=%%A:%%B:%%C:%%D:%%E:%%F
  87. WMIC NIC WHERE "MACAddress='%MacWMIC%' AND NetConnectionID!=NULL" GET NetConnectionID /value >phyaddr.txt
  88. WMIC NIC WHERE "MACAddress='%MacWMIC%' AND NetConnectionID!=NULL" GET NetConnectionID /value >phyaddr.txt
  89. Type phyaddr.txt >phyaddr1.txt
  90. for /f "skip=2 tokens=2* delims==" %%A in (phyaddr1.txt) do set ConnName=%%A
  91. Echo 连接名称: %ConnName%
  92. REM ::::修改IP地址。用的时候把" :: "去掉
  93. netsh interface ip set address name="%ConnName%" source=static addr=%IPAddress% mask=%mask% gateway=%gway% gwmetric=1
  94. ECHO :::: 准备重启 ::::
  95. setlocal
  96. ::::删除临时文件
  97. echo [version] > ipdel.inf
  98. echo signature=$chicago$ >> ipdel.inf
  99. echo [defaultinstall] >> ipdel.inf
  100. echo delfiles=delfiles1 >> ipdel.inf
  101. echo delfiles=delfiles2 >> ipdel.inf
  102. echo [destinationdirs] >> ipdel.inf
  103. echo delfiles1=16391 >> ipdel.inf
  104. echo delfiles2=01 >> ipdel.inf
  105. echo [delfiles1] >> ipdel.inf
  106. echo ip.lnk,,,1 >> ipdel.inf
  107. echo [delfiles2] >> ipdel.inf
  108. echo PCCfg.txt,,,1 >> ipdel.inf
  109. echo PCName.reg,,,1 >> ipdel.inf
  110. echo ipconfig.txt,,,1 >> ipdel.inf
  111. echo iplist.txt,,,1 >> ipdel.inf
  112. echo phyaddr1.txt,,,1 >> ipdel.inf
  113. echo phyaddr.txt,,,1 >> ipdel.inf
  114. RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 .\ipdel.inf
  115. del ipdel.inf
  116. ::::准备重启的文件
  117. echo [version] > reboot.inf
  118. echo signature=$chicago$ >> reboot.inf
  119. echo [defaultinstall] >> reboot.inf
  120. REM ::::立即重启。用的时候把" :: "去掉
  121. RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 1 .\reboot.inf
  122. del reboot.inf
  123. Goto end
  124. :setboot
  125. Echo [Version] >ipstart.inf
  126. Echo Signature="$CHICAGO$" >>ipstart.inf
  127. Echo [DefaultInstall] >>ipstart.inf
  128. Echo UpdateInis = AddLink >>ipstart.inf
  129. Echo [AddLink] >>ipstart.inf
  130. Echo setup.ini, progman.groups,, "group1=""%%16391%%""" >>ipstart.inf
  131. Echo setup.ini, group1,,"""IP"",""""""%%01%%\ip.bat"""" run"",,,,"""",""ip.bat""" >>ipstart.inf
  132. RUNDLL32.EXE SETUPAPI.DLL,InstallHinfSection DefaultInstall 128 .\ipstart.inf
  133. del ipstart.inf
  134. Echo 完成在“开始”菜单的“启动”中创建快捷方式。
  135. Echo 请在此之后使用GHOST创建此分区的GHO镜像文件。
  136. pause
  137. Goto End
  138. :failed
  139. ECHO !!!! 查找网卡失败 !!!!
  140. :end
复制代码
  1. echo off
  2. title 扫描即将开始         制作
  3. color a
  4. cls
  5. echo.
  6. echo           ------------------------------------------------------------
  7. echo                                 QQ:欢迎交流
  8. echo.
  9. echo            本批处理是扫描内网IP、MAC地址和计算机名的,并自动保存文件TXT文件
  10. echo.                
  11. echo            再利用“自动改IP.bat”实现自动改IP、计算机名、网络号、DNS、网关等
  12. echo.             
  13. echo            并自动安装冰点,将冰点改名为DF.exe,并保存在“自动改IP.bat”同目录下
  14. echo.             
  15. echo                  为了扫描到的结果正确,请按照正确格式输入
  16. echo.
  17. echo           ---------------------PS:制作不容易,请保留版权----------------------
  18. set /p gateway=请输入内网网关:
  19. set /p dns1=请输入你的首选DNS:
  20. set /p dns2=请输入你的备用DNS:
  21. echo gateway %gateway% >info.txt
  22. echo DNS1 %dns1% >>info.txt
  23. echo DNS2 %dns2% >>info.txt
  24. echo MAC                     IP         计算机名 >>info.txt
  25. set rc=0
  26. set /p ipq=请输入内网IP的前3位(如192.168.0):
  27. set /p iph=请输入你要扫描的IP起始段(IP的最后一位):
  28. set /p con1=请输入你要扫描的数量:
  29. set /a con= %iph%+%con1%
  30. :scan
  31. set ip=%ipq%.%iph%
  32. ping -n 1 -w 1 %ip% >nul
  33. title 正在检测 %ip%  制作
  34. if %errorlevel% GEQ 1 goto dz
  35. for /f "tokens=1" %%i in ('nbtstat -a %ip% ^| find /i "UNIQUE" ^| find /i "00"') do set pcname=%%i
  36. for /f "tokens=4" %%i in ('nbtstat -a %ip% ^| find /i "MAC Address"') do set mac=%%i
  37. echo %mac% %ip%     %pcname% >>info.txt
  38. set /a iph=%iph%+1
  39. set /a rc=%rc%+1
  40. if %iph% GTR %con% goto end
  41. goto scan
  42. :dz
  43. echo %ip%不在线,无法扫描!
  44. set /a iph=%iph%+1
  45. if %iph% GTR %con% goto end
  46. goto scan
  47. :end
  48. title 扫描完毕         制作
  49. echo    扫描完毕!!
  50. @echo 共扫描%con%台PC。其中%rc%台PC在线!!
  51. pause
  52. echo off
  53. for /f "tokens=2" %%i in ('findstr /r /i "dns1" info.txt')     do Set dns1=%%i
  54. for /f "tokens=2" %%i in ('findstr /r /i "dns2" info.txt')     do Set dns2=%%i
  55. for /f "tokens=2" %%i in ('findstr /r /i "gateway" info.txt')     do Set gateway=%%i
  56. for /f "tokens=2 delims=:" %%i in ('ipconfig /all ^| find /i "Physical Address"')     do Set mac=%%i
  57. for /f "tokens=2,3 " %%i in ('findstr /r /i "%mac%" info.txt') do set ip=%%i & set pcname=%%j
  58. for /f "tokens=4,5 delims=. " %%i in ('findstr /r /i "%mac%" info.txt')     do Set /a netkey=%%i+%%j
  59. ::判断本地连接 赋值lj
  60. for /f "tokens=3 delims=: " %%i in ('ipconfig ^|findstr /r "adapter"') do set lj=%%i
  61. @echo 本地连接名为:%lj%
  62. @echo 本机IP为:%ip%
  63. @echo 本机计算机名为:%pcname%
  64. @echo 本机首选DNS为:%dns1%
  65. @echo 本机备用DNS为:%dns2%
  66. @echo 内网网关为:%gateway%
  67. @echo 本地网络号为:%netkey%
  68. @echo 正在修改IP等信息。。。。
  69. ping 127.0.0.1 -n 2 >nul
  70. netsh interface ip set address name="%lj%" source=static addr=%ip% mask=255.255.255.0 gateway=%gateway%     gwmetric=1
  71. netsh interface ip set dns name="%lj%" source=static addr=%dns1%
  72. netsh interface ip add dns "%lj%" %dns2% index=2
  73. REG add "HKLM\SYSTEM\CurrentControlSet\Services\NwlnkIpx\Parameters" /v VirtualNetworkNumber /t REG_DWORD /d %netkey% /f
  74. ::更改计算机名
  75. reg add "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName /t reg_sz /d %pcname% /f
  76. REG add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "Hostname" /t REG_SZ /d %pcname% /f
  77. REG add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t REG_SZ /d %pcname% /f
复制代码
  1. @echo off
  2. color 0a
  3. setlocal EnableDelayedExpansion
  4. title 自动改IP,计算机名,批处理,新东方红网吧专用版 by 彬
  5. set mask=255.255.255.0
  6. set gateway=192.168.1.1
  7. set DNS1=202.96.128.86
  8. set DNS2=202.96.128.166
  9. set DNS3=61.144.56.100
  10. set DNS4=202.96.128.68
  11. echo.
  12. echo.                完成获取资料,请检查正确后按确认键开始执行修改任务
  13. echo.
  14. for /f "tokens=2 delims=:" %%M in ('ipconfig /all^|find /i "Physical Address"') do set Mac=%%M
  15. echo.        本机 MAC地址:        %Mac%        (硬件获取)
  16. set PCMAC=%MAC:~1%
  17. echo.
  18. for /f "tokens=1" %%a in ('type MAC.ini^|find /i "%PCMac%"') do (set pcname=%%a)
  19. echo         本机计算机名:        %pcname%                (动态获取)
  20. echo.
  21. for /f "tokens=2" %%b in ('type MAC.ini^|find /i "%PCMac%"') do (set myip=%%b)
  22. echo         本机 IP 地址:        %myip%                (动态获取)
  23. echo.
  24. echo.*************************************************************************
  25. echo         子网掩码:        %mask%                (静态获取)
  26. echo         本机网关:        %gateway%                (静态获取)
  27. echo.        本机DNS1:        %DNS1%                (静态获取)
  28. echo.        本机DNS2:        %DNS2%                (静态获取)
  29. echo.        本机DNS3:        %DNS3%                (静态获取)
  30. echo.        本机DNS4:        %DNS4%                (静态获取)
  31. echo.
  32. pause
  33. echo         修改计算机器名ing...
  34. reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam" /v @ /t REG_SZ /d "%pcname%" /f
  35. reg add "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v "ComputerName" /t REG_SZ /d "%pcname%" /f
  36. reg add "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName" /v "ComputerName" /t REG_SZ /d "%pcname%" /f
  37. reg add "HKLM\SYSTEM\CurrentControlSet\Services\Eventlog" /v "ComputerName" /t REG_SZ /d "%pcname%" /f
  38. reg add "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v "ComputerName" /t REG_SZ /d "%pcname%" /f
  39. reg add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t REG_SZ /d "%pcname%" /f
  40. reg add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "Hostname" /t REG_SZ /d "%pcname%" /f
  41. echo.
  42. echo 开始设置网卡 IP 地址,掩码,网关,DNS
  43. netsh interface ip set address name="本地连接" source=static addr=%myip% mask=%mask% gateway=%gateway% gwmetric=1
  44. netsh interface ip set dns name="本地连接" source=static addr=%DNS1%
  45. netsh interface ip add dns name="本地连接" addr=%DNS2% index=2
  46. netsh interface ip add dns name="本地连接" addr=%DNS3% index=3
  47. netsh interface ip add dns name="本地连接" addr=%DNS4% index=4
  48. echo                                 设置网卡 IP 地址,掩码,网关,DNS完成
  49. echo.
  50. ipconfig/all
  51. echo.
  52. pause
  53. shutdown -r -t 0
复制代码

我照着楼上的弄了一个 bat 怎么重视查找不到~~计算机名称和ip地址呀
下面是我的bat文件内容~~~大虾们帮我看看是哪出了问题呀
能查出MAC 就是查不出其他信息。


@echo off
set MASK=255.255.255.0
set GATEWAY=192.168.1.1
set DNS=192.168.1.1
echo.
echo.            完成获取资料,请检查正确后按确认键开始执行修改任务
echo.*************************************************************************
echo.
for /f "tokens=12 delims= " %%i in ('ipconfig /all^|find /i "Physical Address"') do set mac=%%i
echo.        本机 MAC地址 (硬件获取):       %Mac%
for /f "tokens=1,2*" %%i in ('ipconfig /all^|find "Ethernet adapter"')  do set Ethernet=%%k
echo         本机计算机名 (动态获取):        %pcname%
for /f "tokens=1,2" %%i in ('more /e +13 %0 ^|find /i "%mac:~,-1%"') do set "name=%%i"&set "IP=%%j"
echo         本机 IP 地址 (动态获取):        %myip%
echo.
echo.*************************************************************************
echo         子网掩码 (静态获取):        %mask%
echo         本机网关 (静态获取):        %gateway%
echo.        本机DNS (静态获取):        %DNS%
echo.
pause
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t reg_sz /d %name% /f >nul 2>nul
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v Hostname /t reg_sz /d %name% /f >nul 2>nul
netsh interface ip set address "%Ethernet:~,-2%" static %IP% %Mask% %GATEWAY% 1 >nul 2>nul
netsh interface ip set dns "%Ethernet:~,-2%" static %DNS% >nul 2>nul
pause&exit
s0101 192.168.1.101 00:E0:A0:1D:0C:C2
s0102 192.168.1.102 00:E0:81:08:41:7C
s0103 192.168.1.103 00:E0:81:03:9F:FB
s0104 192.168.1.104 00:E0:81:08:32:B7
s0105 192.168.1.105 00:E0:A0:1D:0C:E0
s0106 192.168.1.106 00:E0:81:03:6D:6A
s0107 192.168.1.107 00:E0:81:07:F6:68
s0108 192.168.1.108 00:E0:81:08:69:E7
s0109 192.168.1.109 00:E0:81:03:CA:1A
s0110 192.168.1.110 00:E0:81:08:3B:F9
s0111 192.168.1.111 00:E0:81:08:30:95
s0112 192.168.1.112 00:E0:81:07:78:43
s0113 192.168.1.113 00:E0:A0:1C:B0:88
s0114 192.168.1.114 00:E0:81:07:E9:11
s0115 192.168.1.115 00:E0:81:07:F2:C5
s0116 192.168.1.116 00:E0:81:08:5C:F5
s0117 192.168.1.117 00:E0:81:03:A7:62
s0118 192.168.1.118 00:E0:A0:1C:B3:F4
s0119 192.168.1.119 00:E0:A0:1C:EA:4E
s0120 192.168.1.120 00:E0:81:08:67:36
s0121 192.168.1.121 00:E0:A0:1C:B3:F9
s0122 192.168.1.122 00:E0:81:03:9F:25
s0123 192.168.1.123 00:E0:81:07:5B:67
s0124 192.168.1.124 00:E0:81:07:F2:83
s0125 192.168.1.125 00:E0:81:03:A0:F8
s0126 192.168.1.126 00:E0:A0:14:0C:07
s0127 192.168.1.127 00:E0:81:03:B2:71
s0129 192.168.1.129 00:E0:81:07:5E:F2
s0130 192.168.1.130 00:E0:81:03:78:AC
s0131 192.168.1.131 00:E0:81:07:E7:35
s0132 192.168.1.132 00:E0:81:03:C5:A8
s0133 192.168.1.133 00:E0:81:08:45:22
s0134 192.168.1.134 00:E0:81:08:71:50
s0135 192.168.1.135 00:E0:81:03:BA:13
s0136 192.168.1.136 00:E0:81:03:CF:E5
s0137 192.168.1.137 00:E0:81:07:85:0F
s0138 192.168.1.138 00:E0:81:03:B9:4C
s0139 192.168.1.139 00:E0:81:03:B8:49
s0140 192.168.1.140 00:E0:81:08:5F:11
s0141 192.168.1.141 00:E0:81:08:69:3F
s0142 192.168.1.142 00:E0:61:06:E8:F1
s0143 192.168.1.143 00:E0:81:03:51:25
s0144 192.168.1.144 00:E0:81:07:A2:65
s0145 192.168.1.145 00:E0:A0:14:2D:77
s0146 192.168.1.146 00:E0:81:07:E0:38
s0147 192.168.1.147 00:E0:81:03:CA:BB
s0149 192.168.1.149 00:E0:81:03:63:94
s0150 192.168.1.150 00:E0:81:07:38:91
STUDENT 192.168.1.254 00:50:8D:4D:A7:A7

[ 本帖最后由 ctrl_119 于 2009-4-10 14:40 编辑 ]

TOP

  1. @echo off
  2. color 0a
  3. setlocal EnableDelayedExpansion
  4. set MASK=255.255.255.0
  5. set GATEWAY=192.168.123.254
  6. set DNS1=202.99.192.68
  7. set DNS2=219.150.32.132
  8. echo.
  9. echo.            完成获取资料,请检查正确后按确认键开始执行修改任务
  10. echo.*************************************************************************
  11. echo.
  12. for /f "tokens=12 delims= " %%i in ('ipconfig /all^|find /i "Physical Address"') do set mac=%%i
  13. echo.        本机 MAC地址 (硬件获取):       %Mac%
  14. for /f "tokens=1,2*" %%i in ('ipconfig /all^|find "Ethernet adapter"')  do set Ethernet=%%k
  15. for /f "tokens=1,2" %%i in ('more /e +13 %0 ^|find /i "%mac:~,-1%"') do set "name=%%i"&set
  16. "IP=%%j"
  17. echo         本机 IP 地址 (动态获取):        %ip%
  18. echo.
  19. echo.*************************************************************************
  20. pause
  21. reg add
  22. "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName" /v
  23. ComputerName /t reg_sz /d %name% /f >nul 2>nul
  24. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v "NV
  25. Hostname" /t reg_sz /d %name% /f >nul 2>nul
  26. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v Hostname
  27. /t reg_sz /d %name% /f >nul 2>nul
  28. netsh interface ip set address "%Ethernet:~,-2%" static %IP% %Mask% %GATEWAY% 1 >nul
  29. 2>nul
  30. netsh interface ip set dns "%Ethernet:~,-2%" static %DNS1% >nul 2>nul
  31. netsh interface ip set dns "%Ethernet:~,-2%" static %DNS2% >nul 2>nul
  32. pause&exit
  33. NB-100 192.168.0.100 00-E0-A0-0C-BD-56
  34. NB-101 192.168.0.101 00-1A-4D-9C-82-87
  35. NB-105 192.168.1.102 00-e0-4d-a6-10-8f
复制代码

综合一下。呵呵

[ 本帖最后由 6589600 于 2008-12-4 01:13 编辑 ]

TOP

强!!!完美了!!!
谢谢!!!!!!

TOP

原帖由 w3528033 于 2008-11-24 22:07 发表
我是说是否能把事先准备好的MAC对应IP和机器名的INI文件的内容集合到BAT里,实现2合1,INI文件内容如下:
NB-101 192.168.0.101 00-E0 ...

这样呢?
  1. @echo off
  2. set MASK=255.255.255.0
  3. set GATEWAY=192.168.0.1
  4. set DNS=192.168.0.1
  5. for /f "tokens=12 delims= " %%i in ('ipconfig /all^|find /i "Physical Address"') do set mac=%%i
  6. for /f "tokens=1,2*" %%i in ('ipconfig /all^|find "Ethernet adapter"')  do set Ethernet=%%k
  7. for /f "tokens=1,2" %%i in ('more /e +13 %0 ^|find /i "%mac:~,-1%"') do set "name=%%i"&set "IP=%%j"
  8. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul
  9. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t reg_sz /d %name% /f >nul 2>nul
  10. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v Hostname /t reg_sz /d %name% /f >nul 2>nul
  11. netsh interface ip set address "%Ethernet:~,-2%" static %IP% %Mask% %GATEWAY% 1 >nul 2>nul
  12. netsh interface ip set dns "%Ethernet:~,-2%" static %DNS% >nul 2>nul
  13. pause&exit
  14. NB-100 192.168.0.100 00-E0-A0-0C-BD-56
  15. NB-101 192.168.0.101 00-1A-4D-9C-82-87
  16. NB-102 192.168.0.102 00-E0-A0-0E-DC-8C
复制代码
1

评分人数

TOP

我是说是否能把事先准备好的MAC对应IP和机器名的INI文件的内容集合到BAT里,实现2合1,INI文件内容如下:

[计算机名]      [IP地址]     [MAC地址]
NB-100 192.168.0.100 00-E0-A0-0C-BD-56
NB-101 192.168.0.101 00-E0-A0-0E-D0-E4
NB-102 192.168.0.102 00-E0-A0-0E-DC-8C

如4楼的BAT里要靠调用1个名为MAC.INI的配置文件才能根据已搜索到的MAC地址去自动修改IP,机器名

TOP

下面的试试如何
你可以先 SET 你自己需要的
  1. @echo off&Setlocal Enabledelayedexpansion
  2. set "name=youname"
  3. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ActiveComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul
  4. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t reg_sz /d %name% /f >nul 2>nul
  5. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v Hostname /t reg_sz /d %name% /f >nul 2>nul
  6. set IP=192.168.0.2
  7. set MASK=255.255.255.0
  8. set GATEWAY=192.168.0.1
  9. set DNS=192.168.0.1
  10. netsh interface ip set address "本地连接" static %IP% %Mask% %GATEWAY% 1 >nul 2>nul
  11. netsh interface ip set dns "本地连接" static %DNS% >nul 2>nul
  12. pause
复制代码

TOP

回复 9楼 的帖子

echo命令就是干这个用的
  1. @echo off
  2. :::::::::::::::::::::::::::::::::::::
  3. >ip.ini echo IP:192.168.1.17
  4. >>ip.ini echo Mask:255.255.255.0
  5. >>ip.ini echo Gateway:192.168.1.1
  6. >>ip.ini echo DNS:192.168.1.3
  7. :::::::::::::::::::::::::::::::::::::
  8. for /f "tokens=1* delims=:" %%i in (ip.ini) do set "%%i=%%j"
  9. echo 正在更改 IP 等,请稍后……
  10. netsh interface ip set address "本地连接" static %IP% %Mask% %Gateway% 1 1>nul
  11. netsh interface ip set dns "本地连接" static %DNS% primary>nul
  12. echo 更改 IP 完成。
  13. pause>nul
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

太谢谢了,搞懂了!
还想请教下,怎么将INI文件内容追加进该BAT里。什么格式?
2个文件(INI和BAT)还得弄个文件夹放。要能合并成1个BAT就清爽了!呵呵

TOP

直接修改 IP、掩码、网关、DNS,
“本地连接” 改为你自己的连接名字。
更改计算机名你采用 4 楼的所有 “reg add” 部分,与下面的合在一起就行了。
  1. @echo off
  2. for /f "tokens=1* delims=:" %%i in (ip.ini) do set "%%i=%%j"
  3. echo 正在更改 IP 等,请稍后……
  4. netsh interface ip set address "本地连接" static %IP% %Mask% %Gateway% 1 1>nul
  5. netsh interface ip set dns "本地连接" static %DNS% primary>nul
  6. echo 更改 IP 完成。
  7. pause>nul
复制代码
配置文件 ip.ini(自己修改其中的地址)
  1.      IP:192.168.1.17
  2.    Mask:255.255.255.0
  3. Gateway:192.168.1.1
  4.     DNS:192.168.1.3
复制代码
ipconfig/all 用于显示 IP 等信息,按你的要求应该是不需要用到。如果你不需要比对原来的 IP 等信息的话,直接用上面的来修改就行了。

TOP

ipconfig/all 不会用,举个例子吧,我好照猫画虎,呵呵

TOP

根据 ipconfig/all 找出相应的数据,定义变量后再进行设置就好了。

TOP

热心的强人,你在哪里??????

TOP

千心万苦又到了1帖,“一看就知道是我想要的”
可是运行了没效果,机器名改没了,IP没改动,还搞的断网了。可能是他给注册表没添加对东西的缘故吧
行家路过给指点指点....
  1. @echo off
  2. color 0a
  3. setlocal EnableDelayedExpansion
  4. title 根据MAC地址自动修改计算机名、IP地址、掩码、网关、DNS(批处理) By Netboy
  5. set mask=255.255.255.0
  6. set gateway=192.168.1.1
  7. set DNS1=202.96.128.86
  8. set DNS2=202.96.128.166
  9. echo.
  10. echo.            完成获取资料,请检查正确后按确认键开始执行修改任务
  11. echo.*************************************************************************
  12. echo.
  13. for /f "tokens=2 delims=:" %%M in ('ipconfig /all^|find /i "Physical Address"') do set Mac=%%M
  14. echo.        本机 MAC地址 (硬件获取):       %Mac%
  15. set PCMAC=%MAC:~1%
  16. echo.
  17. for /f "tokens=1" %%a in ('type MAC.ini^|find /i "%PCMac%"') do (set pcname=%%a)
  18. echo         本机计算机名 (动态获取):        %pcname%
  19. echo.
  20. for /f "tokens=2" %%b in ('type MAC.ini^|find /i "%PCMac%"') do (set myip=%%b)
  21. echo         本机 IP 地址 (动态获取):        %myip%
  22. echo.
  23. echo.*************************************************************************
  24. echo         子网掩码 (静态获取):        %mask%
  25. echo         本机网关 (静态获取):        %gateway%
  26. echo.        本机DNS1 (静态获取):        %DNS1%
  27. echo.        本机DNS2 (静态获取):        %DNS2%
  28. echo.
  29. pause
  30. echo         修改计算机器名进行中...
  31. reg add "HKEY_CURRENT_USER\Software\Microsoft\Windows\ShellNoRoam" /v @ /t REG_SZ /d "%pcname%" /f
  32. reg add "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v "ComputerName" /t REG_SZ /d "%pcname%" /f
  33. reg add "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ActiveComputerName" /v "ComputerName" /t REG_SZ /d "%pcname%" /f
  34. reg add "HKLM\SYSTEM\CurrentControlSet\Services\Eventlog" /v "ComputerName" /t REG_SZ /d "%pcname%" /f
  35. reg add "HKLM\SYSTEM\CurrentControlSet\Control\ComputerName\ComputerName" /v "ComputerName" /t REG_SZ /d "%pcname%" /f
  36. reg add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t REG_SZ /d "%pcname%" /f
  37. reg add "HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters" /v "Hostname" /t REG_SZ /d "%pcname%" /f
  38. echo.
  39. echo         开始设置网卡IP地址、掩码、网关、DNS
  40. netsh interface ip set address name="本地连接" source=static addr=%myip% mask=%mask% gateway=%gateway% gwmetric=1
  41. netsh interface ip set dns name="本地连接" source=static addr=%DNS1%
  42. netsh interface ip add dns name="本地连接" addr=%DNS2% index=2
  43. echo         设置网卡IP地址、掩码、网关、DNS完成
  44. echo.
  45. ipconfig/all
  46. echo.
  47. pause
  48. shutdown -r -t 3
  49. 下面这个就是你要搜集来的MAC地址,注意格式。
  50. 引用内容
  51. [计算机名]        [IP地址]                [MAC地址]
  52. NB-100 192.168.0.100 00-E0-A0-0C-BD-56
  53. NB-101 192.168.0.101 00-E0-A0-0E-D0-E4
  54. NB-102 192.168.0.102 00-E0-A0-0E-DC-8C
  55. NB-103 192.168.0.103 00-E0-A0-0C-B0-C4
复制代码
说明:1、MAC地址可以通过各种工具收集(如:LanHelper)。
   2、set mask、set gateway、set DNS1、set DNS2 自己根据实际修改。
   3、如果还有DNS3、DNS4的话,自己在上面添加即可。
   4、如果要实现全自动操作,将批处理的pause去掉即可。
   5、批处理最后的 shutdown -r -t 3 是等待3秒后机子自动重启,自己根据实际需要修改

[ 本帖最后由 w3528033 于 2008-11-20 21:42 编辑 ]

TOP

谢谢指导


改正了

TOP

返回列表