工作与家庭网络切换.bat

阅读: 评论:0

工作与家庭网络切换.bat

工作与家庭网络切换.bat

@echo off
setlocal enabledelayedexpansion
netsh wlan set hostednetwork mode=disallow %/*承载网络模式不禁止的话不可使用(默认都没有承载模式)*/%
cls

:: =========== 工作网络配置 ===========
set "IP_set=10.64.210.249"
set "MASK_set=255.255.255.128"
set "GATEWAY_set=10.64.210.251"
set "DNS1_set=10.64.208.108"

:LISTEN
 cls
 set /a g=0
 set /a v=0
 set /a line=0
 
 set f_Host_Name=Name
 set f_Desc=Description
 set f_IP_host=IP
 set f_MAC_host=Physical
 
 :: 参数分离
 for /f "tokens=2* delims=:" %%i in ('ipconfig/all^|findstr %f_Desc%') do (
  set /a v+=1
  set /a g+=1
  if !v! equ !g! (
   set /a line+=1
   set Desc_!line!=%%i
  )
 )
 :: 网卡跳转,最多只支持三网卡
 if 1 LEQ %line% (
  if "%Desc_1%" neq "%Desc_1:Network=%" (
   set num=1
  )
 )
 if 2 LEQ %line% (
  if "%Desc_2%" neq "%Desc_2:Network=%" (
   set num=2
  )
 
 )
 if 3 LEQ %line% (
  if "%Desc_3%" neq "%Desc_3:Network=%" (
   set num=3
  )
 )
 
 :: 语言跳转
 if %line% EQU 0 (
  goto LISTCN
 )
 
 if "%num%" LEQ "%line%" (goto GETCRDINFO)
 echo 输入错误,请重新输入.
 pause>nul
 cls
goto LISTEN

:LISTCN
 cls
 set /a g=0
 set /a v=0
 set /a line=0
 
 set f_Host_Name=主机名
 set f_Desc=描述
 set f_IP_host=IPv4
 set f_MAC_host=物理地址
 
 :: 参数分离
 for /f "tokens=2* delims=:" %%i in ('ipconfig/all^|findstr %f_Desc%') do (
  set /a v+=1
  set /a g+=1
  if !v! equ !g! (
   set /a line+=1
   set Desc_!line!=%%i
  )
 )
 :: 网卡跳转,最多只支持三网卡
 if 1 LEQ %line% (
  if "%Desc_1%" neq "%Desc_1:Network=%" (
   set num=1
  )
 )
 if 2 LEQ %line% (
  if "%Desc_2%" neq "%Desc_2:Network=%" (
   set num=2
  )
 
 )
 if 3 LEQ %line% (
  if "%Desc_3%" neq "%Desc_3:Network=%" (
   set num=3
  )
 )
 
 if "%num%" LEQ "%line%" (goto GETCRDINFO)
 echo 输入错误,请重新输入.
 pause>nul
 cls
goto LISTCN

:: 获取网卡路径
:GETCRDINFO
 :: Host_Name
 for /f "tokens=2* delims=:" %%i in ('ipconfig/all^|findstr %f_Host_Name%') do (
  set Host_Name=%%i
 )
 :: IP_host
 set /a k=0
 for /f "tokens=2* delims=:" %%i in ('ipconfig/all^|findstr %f_IP_host%') do (
  set /a k=k+1
  if !k! equ !num! (
   set IP_host=%%i
  )
 )
 :: MAC_host
 set /a k=0
 for /f "tokens=2* delims=:" %%i in ('ipconfig/all^|findstr %f_MAC_host%') do (
  set /a k=k+1
  if !k! equ !num! (
   set MAC_host=%%i
  )
 )
goto SHOW

:SHOW
 :: 过滤字符串
 set Host_Name=%Host_Name: =%
 set IP_host=%IP_host: =%
 set IP_host=%IP_host:(=%
 set IP_host=%IP_host:首选=%
 set IP_host=%IP_host:)=%
 set MAC_host=%MAC_host: =%
 :: 显示信息
 echo Host_Name:[%Host_Name%]
 echo IP_host  :[%IP_host%]
 echo MAC_host :[%MAC_host%]
 :: 对比IP,匹配工作网络则设为动态IP,否则设为工作IP
 if "%IP_host%"=="%IP_set%" (
  echo 网络环境为工作网络
  echo 正在转换为家庭网络...
  echo 正在设置自动IP,请稍等......
  netsh interface ip set address name = "本地连接" source = dhcp
  echo 正在设置自动DNS ,请稍等......
  netsh interface ip set dns "本地连接" source = dhcp 
 ) else (
  echo 网络环境为家庭网络
  echo 正在转换为工作网络...
  echo 正在设置静态IP,请稍等......
  netsh interface ip set address "本地连接" source = static addr = %IP_set% mask=%MASK_set%
  echo 正在设置静态网关,请稍等......
  netsh interface ip set address "本地连接" gateway = %GATEWAY_set% gwmetric =1
  echo 正在设置首选DNS ,请稍等......
  netsh interface ip set dns "本地连接" source = static addr = %DNS1_set%
 )
 echo 转换完成
pause>nul

本文发布于:2024-01-27 18:58:17,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/17063530992025.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:家庭   工作   网络   bat
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23