在15楼 的基本上又加了只想dns的 命令
缺点就是需要吧上网的网卡 名字改成‘本地连接’
@echo off
for /f "tokens=12" %%i in ('ipconfig /all ^| find /i "physical address"') do set mac=%%i
for /f "tokens=2" %%j in ('find /i "%mac%" test.txt') do set ip=%%j
netsh int ip set address "本地连接" static addr=%ip% 255.255.255.0 192.168.1.1 1
netsh interface ip set dns name="本地连接" source=static addr=8.8.8.8 register=primary
netsh interface ip add dns name="本地连接" addr=202.96.64.68 index=2
考虑到"本地连接"可能不是每台机器都一样,有的可能是"本地连接 2"或"本地连接 4"........还有的是繁体系统,就更不一样了,
@echo off
for /f "tokens=12" %%i in ('ipconfig /all ^| find /i "physical address"') do set mac=%%i
for /f "tokens=2" %%j in ('find /i "%mac%" test.txt') do set ip=%%j
netsh int ip set address "本地连接" static addr=%ip% 255.255.255.0 192.168.1.1 1
pause
为了能通用各种系统所以将上面改为:
@echo off
for /f "tokens=3" %%i in ('reg query HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\RemoteAccess\Interfaces\2 /v "InterfaceName" ^| find /i "InterfaceName"') do set interID=%%i
for /f "tokens=2,*" %%j in ('reg query HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\%interID%\Connection /v "Name" ^| find /i "Name"') do set addressname=%%j %%k
set addressname=%addressname:*REG_SZ =%
for /f "tokens=12" %%i in ('ipconfig /all ^| find /i "physical address"') do set mac=%%i
for /f "tokens=2" %%j in ('find /i "%mac%" test.txt') do set ip=%%j
netsh int ip set address "%addressname%" static addr=%ip% 255.255.255.0 192.168.1.1 1
netsh int ip set dns "%addressname%" static 202.96.128.86 primary
pause
另小弟有一个问题望大侠们指点:
我上面的方法只能在管理用法下执行方能有效,有没有办法能在普通用户下也能自动执行成功呢????????
因涉及到权限转换的问题,所以一直没找到解决原方法。
[Quote=引用 15 楼 youxiabeyond 的回复:]
将下面的指令保存为bat文件后跟你的IP和MAC的对照表文件test.txt一起放到每台电脑上去,然后执行bat文件,就会根据你的IP和MAC对照表自动设定IP了
@echo off
for /f "tokens=12" %%i in ('ipconfig /all ^| find /i "physical address"') do set mac=%%i
for /f "tokens=2" %%j in ('find /i "%mac%" test.txt') do set ip=%%j
netsh int ip set address "本地连接" static addr=%ip% 255.255.255.0 192.168.1.1 1
pau…
[/Quote]