标题: [网络连接] 批处理如何根据计算机名称设置IP? [打印本页]
作者: zeroxi 时间: 3 天前 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 时间: 3 天前 22:07
- @echo off
- REM 定义常量
- set "base_ip=192.168.1"
- set "subnet_mask=255.255.255.0"
- set "gateway=192.168.1.1"
- set "dns1=192.168.2.1"
- set "dns2=192.168.2.2"
- REM CW-001 的初始 IP 是 192.168.1.30
- set "initial_ip_offset=30"
-
- REM 获取计算机名
- set "computer_name=%COMPUTERNAME%"
-
- REM 提取计算机名中的编号部分(假设格式为 CW-XXX)
- for /f "tokens=2 delims=-" %%A in ("%computer_name%") do (
- for /f "tokens=* delims=0" %%B in ("%%A") do (
- set "number=%%B"
- )
- )
-
- REM 将编号转换为整数并计算 IP 地址的最后一个数字
- set /a ip_offset=%initial_ip_offset%+%number%-1
-
- REM 构建完整的 IP 地址
- set "ip_address=%base_ip%.%ip_offset%"
-
- REM 设置静态 IP 地址
- netsh interface ip set address name="本地连接" static %ip_address% %subnet_mask% %gateway% 1
-
- REM 设置首选和备用 DNS 服务器
- netsh interface ip set dns name="本地连接" static %dns1%
- netsh interface ip add dns name="本地连接" %dns2% index=2
-
- REM 提示用户操作完成
- echo IP 地址已设置为: %ip_address%
- echo 子网掩码: %subnet_mask%
- echo 默认网关: %gateway%
- echo DNS 服务器: %dns1%, %dns2%
-
- pause
复制代码
作者: zeroxi 时间: 前天 19:47
回复 感谢大佬2# flashercs
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |