Board logo

标题: [网络连接] 批处理怎样手动输入IP与DHCP获取IP的问题? [打印本页]

作者: allen4597    时间: 2015-5-29 17:52     标题: 批处理怎样手动输入IP与DHCP获取IP的问题?

最近才开始学习批处理,很多命令不明白,希望各位高手指教。
我的问题是这样的,先通过批处理来实现DHCP自动分配IP,之后将系统自动分配的IP地址、子网掩码及网关、DNS手动写入。
第一步我写的DHCP自动获取IP命令如下
  1. @echo off
  2. title 动态自动获取IP设置
  3. set name=本地连接
  4. netsh int ip set addr name="%name%" dhcp
  5. netsh int ip set dns name="%name%" dhcp
  6. netsh interface ipv4 show address         #(这句是为了让BAT运行后显示出获得的IP)
  7. echo 动态自动获取IP设置完成
  8. pause
复制代码
然后手动写入IP的命令如下
  1. @echo off
  2. title 静态IP设置
  3. set name=本地连接
  4. set IP=10.10.1.2  
  5. set mask=255.255.255.128
  6. set gw=10.10.1.1
  7. set dns=202.100.138.68
  8. set dns2=202.100.128.68
  9. netsh int ip set addr name="%name%" source=static addr=%IP% mask=%mask% gateway=%gw% gwmetric=1
  10. netsh int ip set dns name="%name%" source=static addr=%dns% register=primary
  11. netsh int ip add dns name="%name%" addr=%dns2%
  12. netsh interface ip set wins name="%name%" source=static addr=none
  13. echo 静态IP设置完成
  14. pause
复制代码
现在卡住了,我想把两个小程序组合成一个BAT。不知道可不可行,堆栈调用什么的命令还不太懂,希望有高手能教教我。
在此提前感谢大家!
作者: allen4597    时间: 2015-5-30 22:58

求助~~没人知道吗?还是行不通?
作者: allen4597    时间: 2015-6-9 17:22

这个方法是不是行不通??高手请指点
作者: 我不是是人    时间: 2015-6-11 11:48

本帖最后由 我不是是人 于 2015-6-11 13:56 编辑

回復樓主,小弟也是個新手,方法是有想到,不過有一個小小的問題,我電腦是英文版的...........
所以有些地方你需要修改一下(希望對你有幫助)
  1. @echo off
  2. title 動態自動獲取IP設置
  3. set name="Local Area Connection"
  4. netsh interface ip set address name=%name% source=dhcp
  5. netsh interface ip set dns name=%name% source=dhcp
  6. for /f "tokens=14" %%a in ('IPConfig^| Find /i "IPv4 Address"') do (
  7. set IP=%%a
  8. )
  9. for /f "tokens=15" %%a in ('IPConfig^| Find /i "Subnet Mask"') do (
  10. set mask=%%a
  11. )
  12. for /f "tokens=13" %%a in ('IPConfig^| Find /i "Default Gateway"') do (
  13. set gw=%%a
  14. )
  15. for /f "tokens=15" %%a in ('IPConfig /all ^| Find /i "DNS Servers"') do (
  16. set dns=%%a
  17. )
  18. setlocal enabledelayedexpansion
  19. ipconfig /all>>qweasdzxc.txt
  20. set /a min=29,max=29
  21. for /f "tokens=1 delims= " %%a in ('more +%min% "qweasdzxc.txt"')do (
  22. if !min! equ %max% set dns2=%%a
  23. set /a min+=1
  24. )
  25. del qweasdzxc.txt
  26. netsh.exe interface ip set address %name% static %IP% %mask% %gw% 1
  27. netsh.exe interface ip set dns %name% static %dns%
  28. netsh.exe interface ip add dns %name% %dns2%
  29. netsh interface ip set wins name="%name%" source=static addr=none
  30. exit
复制代码





欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2