Windows bat脚本 cmd不修改用户ip只修改网关和DNS

公司有几百台电脑,都要修改网关和DNS,很多人并不懂怎么操作修改网关和DNS。
于是产生了这么一个需求。
文件名:
自动修改网关和DNS.bat

脚本代码:

::byshw2018/12/14 自动修改网关和DNS ,如果出现360等安全软件提示要修改,需允许而不是阻止
@echo off
::获取当前用户的ip,可能是已经设置的 也可能是DHCP的
ipconfig | findstr "IPv4" > d:\ipaddr.txt
::获取本地连接名字,有些可能是本地连接1之类的
ipconfig | findstr "本地连接" > d:\netdevice.txt
set /p ip=<d:\ipaddr.txt
set realip=%ip:~37%
::echo %realip%
::获取本地连接名字
set /p netdevice=<d:\netdevice.txt
set device=%netdevice:~7%
::替换掉本地连接:冒号
set device=%device::=%
::echo %device%
echo 正在设置IP,请耐心等待...
netsh interface ipv4 set address name="%device%" source=static addr=%realip% mask=255.255.254.0 gateway=192.168.0.1 gwmetric=0 >nul
netsh interface ip set dns name="%device%" source=static addr=192.168.0.1
echo 设置完成,按任意键退出即可
pause

实际运用上很多问题,一系列处理后,得到一个最终版

::byshw2018/12/14 自动修改网关和DNS ,如果出现360等安全软件提示要修改,需允许而不是阻止
::2018/12/18 取消写入d盘,有些电脑只有c盘,不再写入磁盘,修改获取本地连接名称的方法不再用findstr ,多物理网卡需验证是否可行
::增加结果当前显示自助校验
@echo off
setlocal enabledelayedexpansion
::获取当前用户的ip,可能是已经设置的 也可能是DHCP的
for /f "delims=" %%i in ( 'ipconfig /all^| find /i "ipv4" ') do (
    set ip=%%i
    goto NEXT
)
:NEXT
set realip=%ip:~37%
set realip=%realip:~0,-5%
::echo %realip%

::获取本地连接名字
For /f Skip^=1^ Tokens^=2^ Delims^=^" %%a In ('netsh interface ip show address') do (
    set device=%%a
    goto SET
)
:SET
::echo %device%
echo 正在设置IP,请耐心等待...
netsh interface ipv4 set address name="%device%" source=static addr=%realip% mask=255.255.254.0 gateway=192.168.0.1 gwmetric=0 >nul
netsh interface ip set dns name="%device%" source=static addr=192.168.0.1
echo -----------------------------------
echo 设置完成 ,请检查,以下信息
echo 如果出现 默认网关是192.168.0.1,DNS服务器是192.168.0.1 则表示成功 。
echo -----------------------------------
For /f "skip=1 Delims=: tokens=1-2" %%a In ('netsh interface ip show address') do (
echo %%a %%b
Set /a n+=1
If !n!==5 goto END
)
:END
For /f "skip=1 Delims=: tokens=1-2" %%a In ('netsh interface ip show dns') do (
echo %%a %%b
Set /a m+=1
If !m!==3 goto END2
)
:END2
echo -----------------------------------
pause

转载请注明出处:https://www.isres.com/shell/194.html



发表留言

人生在世,错别字在所难免,无需纠正。

    captcha