系统城装机大师 - 固镇县祥瑞电脑科技销售部宣传站!

当前位置:首页 > 脚本中心 > DOS/BAT > 详细页面

IP地址自动设置的批处理代码分享

时间:2020-01-03来源:系统城作者:电脑系统城

批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。这些命令统称批处理命令。

小知识:可以在键盘上按下Ctrl+C组合键来强行终止一个批处理的执行过程。

一般常规的批处理命令,按照自上而下的顺序逐行执行,也就是说,只有第一行命令执行之后,才可能执行第二行,第二行执行之后,才可以执行到第三行.....如此依次执行。那么,如果对于不同的情况,需要执行不同的既定操作,常规的执行规则显然是无法完成任务的,这种应用场景下怎么办呢?我们就需要引入流程跳转的概念,即就是动用流程跳转语句goto了。流程跳转的含义:改变默认的执行顺序,强制跳转到指定的位置执行特定的程序块。

  为什么要把goto和冒号这两个命令联合起来介绍?因为它们是分不开的,无论少了哪个或多了哪个都会出错。goto是个跳转命令,紧跟其之后的是标签名;冒号是一个标签标志,紧跟其之后的是标签名,两者合称标签。当程序运行到goto时,将自动跳转到冒号定义的部分去执行(呵呵~试想一下,是不是分不开?)。goto语句与标签一一呼应,在实现流程跳转时相辅相成,缺一不可。

基础知识介绍完毕,我们来看一个IP地址自动设置的批处理的实例代码


 
  1. @echo off
  2. MODE con: COLS=80 lines=30
  3. color 0b
  4. title 自动IP By L
  5.  
  6. echo =====================
  7. echo 自动IP By L
  8. echo =====================
  9.  
  10. rem eth //eth 为网卡名称
  11. echo 1.检测活动网卡...
  12. rem 获取网络连接名称
  13.  
  14. @(for /f "tokens=3*" %%a in ('netsh interface show interface^|more +2') do@echo,%%b)>"network.txt"
  15. set j=0
  16. for /f "tokens=*" %%i in (network.txt) do (
  17. set /a j+=1
  18. set con!j!=%%i
  19. call set eth=%%con!j!%%
  20. )
  21. echo 当前活动网卡名称为:%eth%
  22. set ipduan=149.32.49
  23. rem gw //网关
  24. set gw=%ipduan%.1
  25. rem netmasks //子网掩码
  26. set netmasks=255.255.255.0
  27. rem 最大和最小IP地址
  28. set MAXID=205
  29. set MINID=5
  30.  
  31. echo 2.检查ID配置...
  32. set j=0
  33. for /f "tokens=*" %%i in (nowid.txt) do (
  34. set /a j+=1
  35. set con!j!=%%i
  36. call set oldid=%%con!j!%%
  37. )
  38.  
  39. if %oldid% LSS %MINID% (
  40. echo 检查nowid.txt文件,ID:%oldid%不能小于%MINID%
  41. goto changeerror)
  42.  
  43. echo 3.生成下一个ip地址...
  44.  
  45. set j=0
  46. for /f "tokens=*" %%i in (nowid.txt) do (
  47. set /a j+=1
  48. set con!j!=%%i
  49. call set id=%%con!j!%%
  50. )
  51. echo --------
  52. echo 上一个编号为:%id%
  53. echo 上一个ip地址为:%ipduan%.%id%
  54. echo --------
  55. set /a newid=%id%+1
  56. if %newid% GTR %MAXID% (
  57. echo IP段分配已达上限:%ipduan%.%MAXID%!请重新修改nowid.txt文件或检查IP地址
  58. goto changeerror
  59. ) else (
  60. echo %newid% > nowid.txt
  61. echo 下一个编号为:%newid%
  62. )
  63.  
  64. rem ip //ip 为你想更改的IP
  65. set ip=%ipduan%.%newid%
  66. echo 下一个ip地址:%ip%
  67. echo 下一个ip地址网关:%gw%
  68. echo 下一个ip地址掩码:%netmasks%
  69. echo --------
  70. echo 4.本机IP更改: %ip%
  71. rem
  72.  
  73. netsh interface ipv4 set address %eth% static %ip% %netmasks% %gw%
  74. rem >nul
  75. echo.
  76. echo 5.验证当前本机IP:
  77.  
  78. ipconfig -all >ipconfig.txt
  79. type ipconfig.txt | find "%ip%" && goto success
  80. :changeerror
  81. echo 修改失败,请手动分配IP地址!
  82. goto :end
  83. :success
  84. echo 修改成功
  85. goto :end
  86. :end
  87.  
  88. pause
  89. echo.
  90.  
分享到:

相关信息

  • cmd关机命令是什么

    cmd命令是一个可以让用户们对电脑进行各种快捷操作的实用型命令!今天小编为大家带来的就是如何使用cmd命令来进行电脑关机,感兴趣的话就快来看看吧。...

    2022-10-23

  • cmd命令怎么同时运行两个命令

    cmd命令是一个非常神奇的操作指令,很多的小伙伴们都不知道如何在cmd命令中同时运行两个命令,今天小编就为大家带来了cmd命令同时运行两个命令的方法!感兴趣的话就快来看看吧。...

    2022-10-23

系统教程栏目

栏目热门教程

人气教程排行

站长推荐

热门系统下载