Board logo

标题: [网络连接] 批处理如何根据计算机名称设置IP? [打印本页]

作者: zeroxi    时间: 4 天前 13:05     标题: 批处理如何根据计算机名称设置IP?

求助 根据有规律的计算机名,设置IP。如计算机名为CW-001,CW-002,第一台计算机CW-001初始IP为192.168.1.30 。掩码和网关都是一样的分别为:255.255.255.0、192.168.1.1  ,DNS为192.168.2.1和192.168.2.2。如何使用批处理设置,感谢。
作者: flashercs    时间: 4 天前 22:07

  1. @echo off
  2. REM 定义常量
  3. set "base_ip=192.168.1"
  4. set "subnet_mask=255.255.255.0"
  5. set "gateway=192.168.1.1"
  6. set "dns1=192.168.2.1"
  7. set "dns2=192.168.2.2"
  8. REM CW-001 的初始 IP 是 192.168.1.30
  9. set "initial_ip_offset=30"
  10. REM 获取计算机名
  11. set "computer_name=%COMPUTERNAME%"
  12. REM 提取计算机名中的编号部分(假设格式为 CW-XXX)
  13. for /f "tokens=2 delims=-" %%A in ("%computer_name%") do (
  14.   for /f "tokens=* delims=0" %%B in ("%%A") do (
  15.     set "number=%%B"
  16.   )
  17. )
  18. REM 将编号转换为整数并计算 IP 地址的最后一个数字
  19. set /a ip_offset=%initial_ip_offset%+%number%-1
  20. REM 构建完整的 IP 地址
  21. set "ip_address=%base_ip%.%ip_offset%"
  22. REM 设置静态 IP 地址
  23. netsh interface ip set address name="本地连接" static %ip_address% %subnet_mask% %gateway% 1
  24. REM 设置首选和备用 DNS 服务器
  25. netsh interface ip set dns name="本地连接" static %dns1%
  26. netsh interface ip add dns name="本地连接" %dns2% index=2
  27. REM 提示用户操作完成
  28. echo IP 地址已设置为: %ip_address%
  29. echo 子网掩码: %subnet_mask%
  30. echo 默认网关: %gateway%
  31. echo DNS 服务器: %dns1%, %dns2%
  32. pause
复制代码

作者: zeroxi    时间: 3 天前 19:47

回复 感谢大佬2# flashercs




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