标题: [网络连接] 【已解决】批处理怎样批量设置笔记本的ip,子网掩码,网关和dns? [打印本页]
作者: wangxiaodong 时间: 2014-9-19 23:39 标题: 【已解决】批处理怎样批量设置笔记本的ip,子网掩码,网关和dns?
本帖最后由 wangxiaodong 于 2014-9-25 17:13 编辑
希望编写一个批处理,实现自动设置笔记本的ip,子网掩码,网关和dns
为每个笔记本分配静态ip,每个以太网mac对应于一个ip,对应关系存放在1.txt中,如
mac1 ip1
mac2 ip2
子网掩码为255.255.255.0
网关 192.168.0.1
dns为21.156.240.1
希望在每一个笔记本上运行后,能自动检测本地连接的mac并设置好笔记本的ip,子网掩码,网关和dns。如果没有对应的IP则给出提示。
谢谢!
作者: terse 时间: 2014-9-20 10:57
这样试- @echo off
- set nic=本地连接
- for /f "skip=1" %%i in ('wmic Nic where "NetConnectionID='%nic%'" get MACAddress^,NetConnectionID 2^>^&1') do (
- for %%a in (%%i) do set "mac=%%a"
- )
- if not defined mac (
- set "nic="
- for /f "skip=1tokens=*" %%i in ('wmic Nic get MACAddress^,NetConnectionID') do (
- for /f "tokens=1*" %%a in ("%%i") do (
- if "%%~nxb" neq "" (
- set mac=%%a&set "nic=%%~nxb"
- ) else if not defined mac set mac=%%a
- )
- )
- )
- set ip=
- if not defined nic set nic=本地连接
- if defined mac for /f "tokens=2" %%a in ('findstr /ibc:"%mac%" 1.txt') do set "ip=%%a"
- if not defined ip echo,没有ip可匹配&pause&exit
- set mask=255.255.255.0
- set gateway=192.168.0.1
- set dns=21.156.240.1
- netsh interface ip set address "%nic%" static %ip% %Mask% %gateway% 1 >nul 2>nul
- netsh interface ip set dns "%nic%" static %dns% >nul 2>nul
- pause
复制代码
作者: wangxiaodong 时间: 2014-9-20 22:08
本帖最后由 wangxiaodong 于 2014-9-20 22:11 编辑
回复 2# terse
谢谢你的解答,没有成功。能不能详细地讲一下你的程序?
能不能使用ipconfig /all命令来实现?
配合findstr,for 应该可以吧?
作者: terse 时间: 2014-9-21 00:04
回复 3# wangxiaodong
把下面两行 改为 看什么提示- netsh interface ip set address "%nic%" static %ip% %mask% %gateway% 1
- netsh interface ip set dns "%nic%" static %dns%
复制代码
作者: wangxiaodong 时间: 2014-9-21 11:11
回复 3# wangxiaodong
还是不行,屏幕闪一下就没了。
作者: wangxiaodong 时间: 2014-9-21 13:36
回复 4# terse
,NetConnectionID 2^>^&1是啥意思?
作者: terse 时间: 2014-9-21 19:28
回复 6# wangxiaodong
这个是屏蔽去掉吧
作者: wangxiaodong 时间: 2014-9-21 22:17
回复 7# terse
嗯,虽然没成功,还是要谢谢你!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |