标题: [文本处理] [已解决]批处理如何获取网关和备用DNS? [打印本页]
作者: dnvplj 时间: 2012-11-18 14:36 标题: [已解决]批处理如何获取网关和备用DNS?
本帖最后由 dnvplj 于 2012-11-19 11:03 编辑
请各位朋友帮忙:把网关和备用DNS项填上,谢谢了- @echo off
- for /f "tokens=15" %%i in ('ipconfig /all ^| find /i "IP Address"') do set ip=%%i
- for /f "tokens=15" %%i in ('ipconfig /all ^| find /i "Subnet Mask"') do set mask=%%i
- 本处填写:网关
- for /f "tokens=15" %%i in ('ipconfig /all ^| find /i "DNS Servers"') do set dns=%%i
- 本处填写:备用DNS
-
- echo 本机IP为:%ip%
- echo 子网掩码:%mask%
- echo 本机网关:
- echo 首选 DNS:%dns%
- echo 备用 DNS:
- paus
复制代码
作者: tmplinshi 时间: 2012-11-18 18:57
- @echo off
- setlocal enabledelayedexpansion
-
- set command=" ipconfig /all | findstr /c:"IP Address" /c:"Subnet Mask" /rc:"Gateway.*[0-9].*" /c:"DNS Servers" /rc:"[ ][ ][ ]*[0-9]" "
-
- for /f "tokens=1,2,*" %%a in (' %command% ') do (
- if "%%b"=="" (
- set DNS_Servers2=%%a
- ) else (
- set value=%%c
- set value=!value:*:=!
- set %%a_%%~nb=!value:* =!
- )
- )
-
- echo 本机IP为:%IP_Address%
- echo 子网掩码:%Subnet_Mask%
- echo 本机网关:%Default_Gateway%
- echo 首选 DNS:%DNS_Servers%
- echo 备用 DNS:%DNS_Servers2%
- pause
复制代码
作者: dnvplj 时间: 2012-11-19 11:01
谢谢板主,问题解决了.
作者: dnvplj 时间: 2014-12-28 09:03
回复 2# tmplinshi
版主您好,不好意思又打绕您,该代码在WIN7下只显示“备用DNS”其他的都没显示,如果在WIN7下显示应怎么写,请指教。
作者: tmplinshi 时间: 2014-12-28 14:27
本帖最后由 tmplinshi 于 2014-12-28 15:03 编辑
回复 4# dnvplj
因为在 WIN7 下,ipconfig /all 输出的是汉化后的文字,所以导致 findstr 查找不到英文单词。
解决方法:
- 方法1:在 findstr 命令里,增加查找中文字符。
- 方法2:运行 chcp 437 将内部代码页切换为英文,再执行 ipconfig /all | findstr ...。
如果之后你还要显示中文字符,那么还要运行 graftabl 936 启用中文字符集显示。- @echo off
- setlocal enabledelayedexpansion
- CHCP 437 >nul
-
- set command=" ipconfig /all | findstr /c:"IP Address" /c:"IPv4 Address" /c:"Subnet Mask" /rc:"Gateway.*[0-9].*" /c:"DNS Servers" /rc:"[ ][ ][ ]*[0-9]" "
-
- for /f "tokens=1,2,*" %%a in (' %command% ') do (
- if "%%b"=="" (
- set DNS_Servers2=%%a
- ) else (
- set value=%%c
- set value=!value:*:=!
- set %%a_%%~nb=!value:* =!
- )
- )
-
- If not defined IP_Address (
- for /f "delims=(" %%a in ("%IPv4_Address%") do (
- set "IP_Address=%%a"
- )
- )
-
- GRAFTABL 936 >nul
- echo 本机IP为:%IP_Address%
- echo 子网掩码:%Subnet_Mask%
- echo 本机网关:%Default_Gateway%
- echo 首选 DNS:%DNS_Servers%
- echo 备用 DNS:%DNS_Servers2%
- pause
复制代码
作者: dnvplj 时间: 2014-12-28 22:44
回复 5# tmplinshi
感谢版主的指教,我整不明白了,谢谢了。
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |