首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

导出网络配备.bat

2012-10-18 
导出网络配置.bat:: code by fireghost57:: modify: 2012.10.12:: 本批处理可自动识别网卡信息并生成相应

导出网络配置.bat

:: code by fireghost57
:: modify: 2012.10.12
:: 本批处理可自动识别网卡信息并生成相应配置及存档文件
:: 配置文件中不需要配置的部分,只需置空即可,程序自行跳过
@echo off
title 导出网络配置

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

模式)*/%
cls

:LISTEN
 cls
 
 set f_Host_Name=Name
 set f_Desc=Description
 set f_IP_host=IP Address
 set f_MAC_host=Physical Address
 
 :: 查找主机名
 set /a g=0
 set /a v=0
 set /a line=0
 for /f "tokens=2* delims=:" %%i in ('ipconfig/all^|findstr /c:"%f_Host_Name%"') do (
  set /a g+=1
  set /a v+=1
  if !g! equ !v! (
   set /a line+=1
   set Host_Name=%%i
  )
 )
 
 :: 语言跳转
 set /a language=0
 if %line% EQU 0 (
  set /a language=1
  goto LISTCN
 )
 
 goto PRINTINFO
goto LISTEN

:LISTCN
 cls
 
 set f_Host_Name=主机名
 set f_Desc=描述
 set f_IP_host=IPv4 地址
 set f_MAC_host=物理地址
 
 :: 查找主机名
 set /a g=0
 set /a v=0
 set /a line=0
 for /f "tokens=2* delims=:" %%i in ('ipconfig/all^|findstr /c:"%f_Host_Name%"') do (
  set /a g+=1
  set /a v+=1
  if !g! equ !v! (
   set /a line+=1
   set Host_Name=%%i
  )
 )
 
 goto PRINTINFO
goto LISTCN

:: 生成用户信息
:PRINTINFO
 :: 过滤字符串
 set Host_Name=%Host_Name: =%
 :: 输出信息
 ipconfig /all>[%Host_Name%].cfg
goto GETDESC

:: 获取网卡描述
:GETDESC
 :: 获取网卡描述信息在配置文件中的位置
 set /a line=0
 for /f "tokens=1 delims=:" %%i in ('findstr /n /c:"%f_Desc%" [%Host_Name%].cfg') do

(
  set /a line+=1
  set Search_!line!=%%i
 )
 
 :: 存储网卡描述
 set /a g=0
 set /a v=0
 set /a line=0
 for /f "tokens=2 delims=:" %%i in ('findstr /c:"%f_Desc%" [%Host_Name%].cfg') do (
  set /a g+=1
  set /a v+=1
  :: 输出网卡信息
  if !g! equ !v! (
   echo !g!.%%i
   set /a line+=1
  )
  set Desc_!line!=%%i
 )
 
 :: 用户选择
 echo 发现%line%条网卡信息.
 set /p num=请输入要处理的网卡序号:
 set /a next_num=num+1
 
 if "%num%" LEQ "%line%" (goto GETNETINFO)
 echo 输入错误,请重新输入.
 pause>nul
 cls
goto GETDESC

:: 获取网络信息
:GETNETINFO
 :: 查找IP信息
 set "IP_host= "
 for /f "tokens=1,3 delims=:" %%i in ('findstr /n /c:"%f_IP_host%" [%

Host_Name%].cfg') do (
  if !num! neq !line! (
   :: 不是最大值
   if !Search_%num%! leq %%i (
    if %%i leq !Search_%next_num%! (
     set IP_host=%%j
    )
   )
  ) else (
   :: 是最大值
   if !Search_%num%! leq %%i (
    set IP_host=%%j
   )
  )
 )
 
 :: 查找MAC信息
 set "MAC_host= "
 for /f "tokens=1,3 delims=:" %%i in ('findstr /n /c:"%f_MAC_host%" [%

Host_Name%].cfg') do (
  if !num! neq !line! (
   :: 不是最大值
   if !Search_%num%! leq %%i (
    if %%i leq !Search_%next_num%! (
     set MAC_host=%%j
    )
   )
  ) else (
   :: 是最大值
   if !Search_%num%! leq %%i (
    set MAC_host=%%j
   )
  )
 )
goto SHOW

:SHOW
 :: 过滤字符串
 set Host_Name=%Host_Name: =%
 set IP_host=%IP_host: =%
 set MAC_host=%MAC_host: =%
 if %language% == 1 (
  set IP_host=%IP_host:(=%
  set IP_host=%IP_host:首选=%
  set IP_host=%IP_host:)=%
 )
 :: 显示信息
 echo Host_Name:[%Host_Name%]
 echo IP_host  :[%IP_host%]
 echo MAC_host :[%MAC_host%]
 :: =========== 生成配置 ===========
 set "ipconfig_dir=ipconfig.ini"
 echo [查找主机]>      %ipconfig_dir%
 echo IP_find = >>     %ipconfig_dir%
 echo MAC_find = >>     %ipconfig_dir%
 echo [修改参数]>>     %ipconfig_dir%
 echo IP_set = %IP_host%>>   %ipconfig_dir%
 echo MAC_set = %MAC_host%>>   %ipconfig_dir%
 echo MASK_set = 255.255.255.128>> %ipconfig_dir%
 echo GATEWAY_set = 10.64.210.251>> %ipconfig_dir%
 echo DNS1_set = 10.64.208.108>>  %ipconfig_dir%
 echo DNS2_set = >>     %ipconfig_dir%
 
 echo 用户网络信息已保存在 [%Host_Name%].cfg 文件内,配置信息保存在 ipconfig.ini 文件


pause>nul

 

热点排行