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

[系统相关] [已解决]批处理如何根据MAC地址自动改IP,计算机名?

本帖最后由 滴血雄鹰 于 2019-3-19 12:57 编辑

下面批处理可以在XP下根据MAC地址自动改IP,计算机名,但在WIN7下用不了,请高手修改下?计算机名要不重启就生效的。
  1. @echo off
  2. echo 正在配置IP地址、DNS请稍候……
  3. set MASK=255.255.255.0
  4. set GATEWAY=192.168.103.254
  5. set DNS1=202.96.128.143
  6. set DNS2=202.96.128.68
  7. set WINS=192.168.103.254
  8. for /f "tokens=12 delims= " %%i in ('ipconfig /all^|find /i "Physical Address"') do set mac=%%i
  9. for /f "tokens=1,2*" %%i in ('ipconfig /all^|find "Ethernet adapter"')  do set Ethernet=%%k
  10. for /f "tokens=1,2" %%i in ('more /e +21 %0 ^|find /i "%mac:~,-1%"') do set "name=%%i"&set "IP=%%j"
  11. for /f "tokens=4" %%j in ('more /e +21 %0 ^|find /i "%mac:~,-1%"') do set "p=%%j"
  12. reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\lanmanserver\parameters" /v srvcomment /t reg_sz /d %p% /f >nul 2>nul
  13. reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters" /v srvcomment /t reg_sz /d %p% /f >nul 2>nul
  14. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName /t reg_sz /d %name% /f >nul 2>nul
  15. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /t reg_sz /d %name% /f >nul 2>nul
  16. reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters" /v Hostname /t reg_sz /d %name% /f >nul 2>nul
  17. netsh interface ip set address "%Ethernet:~,-2%" static %IP% %Mask% %GATEWAY% 1 >nul 2>nul
  18. netsh interface ip set dns "%Ethernet:~,-2%" static %DNS1% register=PRIMARY >nul 2>nul
  19. netsh interface ip add dns "%Ethernet:~,-2%"  %DNS2% index=2 >nul 2>nul
  20. netsh interface ip set wins "%Ethernet:~,-2%" static %WINS%  >nul 2>nul
  21. exit
  22. A01 192.168.103.101 10-60-4b-77-fe-a0 北三楼A01
  23. A02 192.168.103.102 10-60-4b-8b-50-be 北三楼A02
  24. A03 192.168.103.103 10-60-4b-88-61-7f 北三楼A03
  25. A04 192.168.103.104 10-60-4b-88-70-a6 北三楼A04
  26. A05 192.168.103.105 10-60-4B-89-46-CE 北三楼A05
  27. A06 192.168.103.106 10-60-4b-8b-51-3f 北三楼A06
  28. A07 192.168.103.107 10-60-4b-8b-53-cd 北三楼A07
  29. A08 192.168.103.108 10-60-4b-8b-51-38 北三楼A08
  30. A09 192.168.103.109 10-60-4b-77-e5-c4 北三楼A09
  31. A10 192.168.103.110 10-60-4b-77-ea-c2 北三楼A10
  32. B01 192.168.103.111 10-60-4b-77-e7-e6 北三楼B01
  33. B02 192.168.103.112 10-60-4b-77-fe-80 北三楼B02
  34. B03 192.168.103.113 10-60-4b-88-5e-cc 北三楼B03
  35. B04 192.168.103.114 10-60-4b-77-ea-a9 北三楼B04
  36. B05 192.168.103.115 10-60-4b-77-fe-9e 北三楼B05
  37. B06 192.168.103.116 10-60-4b-77-e7-eb 北三楼B06
  38. B07 192.168.103.117 10-60-4b-88-70-a1 北三楼B07
  39. B08 192.168.103.118 10-60-4b-8b-50-99 北三楼B08
  40. B09 192.168.103.119 10-60-4b-86-2f-d2 北三楼B09
  41. B10 192.168.103.120 10-60-4b-77-fe-f4 北三楼B10
复制代码
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

for /f "tokens=12 delims= " %%i in ('ipconfig /all^|find /i "Physical Address"') do set mac=%%i
for /f "tokens=1,2*" %%i in ('ipconfig /all^|find "Ethernet adapter"')  do set Ethernet=%%k

这两句检索的字眼出错了"Physical Address"和"Ethernet adapter",不匹配。
XP 下IPCONFIG /ALL 命令出来的字段字眼和 WIN7是不一样的,,

具体是什么字眼自行打命令修改。我也不敢肯定你用的版本和我的本版本是否一样,,,,

TOP

  1. ipconfig /all > 1.txt
复制代码
把1.txt压缩传上来看看
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 2# jiavip


改了还是没有用?是不是有多个“物理地址”,冲突了?IPCONFIG /ALL的内容见附件1.TXT

链接: https://pan.baidu.com/s/1ZFZWMXj7H9ZeJEIXC9oYaw 提取码: ee5v


@echo off
echo 正在配置IP地址、DNS请稍候……
set MASK=255.255.255.0
set GATEWAY=192.168.103.254
set DNS1=202.96.128.143
set DNS2=202.96.128.68
set WINS=192.168.103.254
for /f "tokens=12 delims= " %%i in ('ipconfig /all^|find /i "物理地址"') do set mac=%%i
for /f "tokens=1,2*" %%i in ('ipconfig /all^|find "以太网适配器"')  do set Ethernet=%%k
for /f "tokens=1,2" %%i in ('more /e +21 %0 ^|find /i "%mac:~,-1%"') do set "name=%%i"&set "IP=%%j"
for /f "tokens=4" %%j in ('more /e +21 %0 ^|find /i "%mac:~,-1%"') do set "p=%%j"
reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\lanmanserver\parameters" /v srvcomment /t reg_sz /d %p% /f >nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters" /v srvcomment /t reg_sz /d %p% /f >nul 2>nul
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName" /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 %DNS1% register=PRIMARY >nul 2>nul
netsh interface ip add dns "%Ethernet:~,-2%"  %DNS2% index=2 >nul 2>nul
netsh interface ip set wins "%Ethernet:~,-2%" static %WINS%  >nul 2>nul
exit
A01 192.168.103.101 10-60-4b-77-fe-a0 北三楼A01
A02 192.168.103.102 10-60-4b-8b-50-be 北三楼A02
A03 192.168.103.103 10-60-4b-88-61-7f 北三楼A03
A04 192.168.103.104 10-60-4b-88-70-a6 北三楼A04
A05 192.168.103.105 10-60-4B-89-46-CE 北三楼A05
A06 192.168.103.106 10-60-4b-8b-51-3f 北三楼A06
A07 192.168.103.107 10-60-4b-8b-53-cd 北三楼A07
A08 192.168.103.108 10-60-4b-8b-51-38 北三楼A08
A09 192.168.103.109 10-60-4b-77-e5-c4 北三楼A09
A10 192.168.103.110 10-60-4b-77-ea-c2 北三楼A10
B01 192.168.103.111 10-60-4b-77-e7-e6 北三楼B01
B02 192.168.103.112 10-60-4b-77-fe-80 北三楼B02
B03 192.168.103.113 10-60-4b-88-5e-cc 北三楼B03
B04 192.168.103.114 10-60-4b-77-ea-a9 北三楼B04
B05 192.168.103.115 10-60-4b-77-fe-9e 北三楼B05
B06 192.168.103.116 10-60-4b-77-e7-eb 北三楼B06
B07 192.168.103.117 10-60-4b-88-70-a1 北三楼B07
B08 192.168.103.118 10-60-4b-8b-50-99 北三楼B08
B09 192.168.103.119 10-60-4b-86-2f-d2 北三楼B09
B10 192.168.103.120 10-60-4b-77-fe-f4 北三楼B10

TOP

回复 3# Batcher


    改了还是没有用?是不是有多个“物理地址”,冲突了?IPCONFIG /ALL的内容见附件1.TXT

链接: https://pan.baidu.com/s/1ZFZWMXj7H9ZeJEIXC9oYaw 提取码: ee5v


@echo off
echo 正在配置IP地址、DNS请稍候……
set MASK=255.255.255.0
set GATEWAY=192.168.103.254
set DNS1=202.96.128.143
set DNS2=202.96.128.68
set WINS=192.168.103.254
for /f "tokens=12 delims= " %%i in ('ipconfig /all^|find /i "物理地址"') do set mac=%%i
for /f "tokens=1,2*" %%i in ('ipconfig /all^|find "以太网适配器"')  do set Ethernet=%%k
for /f "tokens=1,2" %%i in ('more /e +21 %0 ^|find /i "%mac:~,-1%"') do set "name=%%i"&set "IP=%%j"
for /f "tokens=4" %%j in ('more /e +21 %0 ^|find /i "%mac:~,-1%"') do set "p=%%j"
reg add "HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\lanmanserver\parameters" /v srvcomment /t reg_sz /d %p% /f >nul 2>nul
reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters" /v srvcomment /t reg_sz /d %p% /f >nul 2>nul
reg add "HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\ComputerName\ComputerName" /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 %DNS1% register=PRIMARY >nul 2>nul
netsh interface ip add dns "%Ethernet:~,-2%"  %DNS2% index=2 >nul 2>nul
netsh interface ip set wins "%Ethernet:~,-2%" static %WINS%  >nul 2>nul
exit
A01 192.168.103.101 10-60-4b-77-fe-a0 北三楼A01
A02 192.168.103.102 10-60-4b-8b-50-be 北三楼A02
A03 192.168.103.103 10-60-4b-88-61-7f 北三楼A03
A04 192.168.103.104 10-60-4b-88-70-a6 北三楼A04
A05 192.168.103.105 10-60-4B-89-46-CE 北三楼A05
A06 192.168.103.106 10-60-4b-8b-51-3f 北三楼A06
A07 192.168.103.107 10-60-4b-8b-53-cd 北三楼A07
A08 192.168.103.108 10-60-4b-8b-51-38 北三楼A08
A09 192.168.103.109 10-60-4b-77-e5-c4 北三楼A09
A10 192.168.103.110 10-60-4b-77-ea-c2 北三楼A10
B01 192.168.103.111 10-60-4b-77-e7-e6 北三楼B01
B02 192.168.103.112 10-60-4b-77-fe-80 北三楼B02
B03 192.168.103.113 10-60-4b-88-5e-cc 北三楼B03
B04 192.168.103.114 10-60-4b-77-ea-a9 北三楼B04
B05 192.168.103.115 10-60-4b-77-fe-9e 北三楼B05
B06 192.168.103.116 10-60-4b-77-e7-eb 北三楼B06
B07 192.168.103.117 10-60-4b-88-70-a1 北三楼B07
B08 192.168.103.118 10-60-4b-8b-50-99 北三楼B08
B09 192.168.103.119 10-60-4b-86-2f-d2 北三楼B09
B10 192.168.103.120 10-60-4b-77-fe-f4 北三楼B10

TOP

回复 5# 滴血雄鹰


    你说的是其中一个原因。另外一个原因是 tokens=12 是取第12列,但1.txt里面MAC地址不是第12列。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 6# Batcher


    能不能给个有用的代码?

TOP

回复 7# 滴血雄鹰


要不你先参考别人的代码思路自己尝试一下?还是搞不定的话,我可以协助。

批处理获取多网卡系统中指定网络连接对应的MAC地址
http://bbs.bathome.net/thread-32287-1-1.html

批处理获取多网卡系统中指定网络连接对应的IP地址
http://bbs.bathome.net/thread-32288-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 jiavip 于 2019-3-19 00:10 编辑

把这两句改成这样,应该能正常获取MAC 和网卡名。至少我在朋友电脑上运行是可以获取。
for /f "tokens=15 delims= " %%i in ('ipconfig /all^|find /i "物理地址"') do set mac=%%i
for /f "tokens=1,2*" %%i in ('ipconfig /all^|find "以太网适配器"')  do set Ethernet=%%j

TOP

看了一下你的 1.TXT 多网卡获取MAC 地址那样写法会出错只会获取最后一个MAC 地址,,
把获取MAC 的那行改成 ,就只会获取物理MAC 地址,
for /f "skip=2 tokens=1 delims= " %%a in ('getmac') do set mac=%%~a

其实脚本调试很简单的,只要多点应用,,
ECHO %MAC%
ECHO %Ethernet%
ECHO %NAME%
ECHO %P%
PAUSE
在变量应用前,查看变量变化就可以了。
这个是一种思路,学好了对你有用。

TOP

回复 8# Batcher

我肯定搞不定的,代码都是复制的!

TOP

回复 11# 滴血雄鹰


推荐教程:
http://bbs.bathome.net/thread-75-1-1.html
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

试试9楼的代码先
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 9# jiavip

试了下,不行!

TOP

本帖最后由 WHY 于 2019-3-20 15:41 编辑
  1. @echo off
  2. echo 正在配置IP地址、DNS请稍候……
  3. set "MASK=255.255.255.0"
  4. set "GATEWAY=192.168.103.254"
  5. set "DNS1=202.96.128.143"
  6. set "DNS2=202.96.128.68"
  7. set "WINS=192.168.103.254"
  8. for /f "tokens=*" %%i in ('wmic Nic where "NetEnabled='true'" get MacAddress^,NetConnectionID /format:List^|find "="') do set "%%i"
  9. for /f "delims=:" %%i in ('findstr /n /b /e ::::.*:::: "%~f0"') do (
  10.     for /f "tokens=1,2,4" %%i in ('more /e +%%i "%~f0" ^| find /i "%MacAddress::=-%"') do (
  11.         set "name=%%i" & set "IP=%%j" & set "Description=%%k"
  12.     )
  13. )
  14. if not defined name (
  15.     echo;No such MAC address in the List & pause & exit /b
  16. ) else if not defined NetConnectionID (
  17.     echo;No Network Connection Found & pause & exit /b
  18. )
  19. reg add "HKLM\SYSTEM\ControlSet001\Services\lanmanserver\parameters" /v srvcomment /d "%Description%" /f >nul 2>nul
  20. reg add "HKLM\SYSTEM\CurrentControlSet\Services\lanmanserver\parameters" /v srvcomment /d "%Description%" /f >nul 2>nul
  21. reg add "HKLM\System\CurrentControlSet\Control\ComputerName\ComputerName" /v ComputerName /d "%name%" /f >nul 2>nul
  22. reg add "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" /v "NV Hostname" /d "%name%" /f >nul 2>nul
  23. reg add "HKLM\System\CurrentControlSet\Services\Tcpip\Parameters" /v Hostname /d "%name%" /f >nul 2>nul
  24. netsh interface ip set address "%NetConnectionID%" static %IP% %Mask% %GATEWAY% 1 >nul 2>nul
  25. netsh interface ip set dns "%NetConnectionID%" static %DNS1% register=PRIMARY >nul 2>nul
  26. netsh interface ip add dns "%NetConnectionID%" %DNS2% index=2 >nul 2>nul
  27. netsh interface ip set wins "%NetConnectionID%" static %WINS%  >nul 2>nul
  28. pause & exit /b
  29. :::: Your IP and MAC Addresses Here ::::
  30. A01 192.168.103.101 10-60-4b-77-fe-a0 北三楼A01
  31. A02 192.168.103.102 10-60-4b-8b-50-be 北三楼A02
  32. A03 192.168.103.103 10-60-4b-88-61-7f 北三楼A03
  33. A04 192.168.103.104 10-60-4b-88-70-a6 北三楼A04
  34. A05 192.168.103.105 10-60-4B-89-46-CE 北三楼A05
  35. A06 192.168.103.106 10-60-4b-8b-51-3f 北三楼A06
  36. A07 192.168.103.107 10-60-4b-8b-53-cd 北三楼A07
  37. A08 192.168.103.108 10-60-4b-8b-51-38 北三楼A08
  38. A09 192.168.103.109 10-60-4b-77-e5-c4 北三楼A09
  39. A10 192.168.103.110 10-60-4b-77-ea-c2 北三楼A10
复制代码
试试吧
1

评分人数

TOP

返回列表