Board logo

标题: [文本处理] [已解决]批处理如何获取网关和备用DNS? [打印本页]

作者: dnvplj    时间: 2012-11-18 14:36     标题: [已解决]批处理如何获取网关和备用DNS?

本帖最后由 dnvplj 于 2012-11-19 11:03 编辑

请各位朋友帮忙:把网关和备用DNS项填上,谢谢了
  1. @echo off
  2. for /f "tokens=15" %%i in ('ipconfig /all ^| find /i "IP Address"') do set ip=%%i  
  3. for /f "tokens=15" %%i in ('ipconfig /all ^| find /i "Subnet Mask"') do set mask=%%i
  4. 本处填写:网关  
  5. for /f "tokens=15" %%i in ('ipconfig /all ^| find /i "DNS Servers"') do set dns=%%i
  6. 本处填写:备用DNS  
  7. echo 本机IP为:%ip%  
  8. echo 子网掩码:%mask%
  9. echo 本机网关:
  10. echo 首选 DNS:%dns%
  11. echo 备用 DNS:  
  12. paus
复制代码

作者: tmplinshi    时间: 2012-11-18 18:57

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set command=" ipconfig /all | findstr /c:"IP Address" /c:"Subnet Mask" /rc:"Gateway.*[0-9].*" /c:"DNS Servers" /rc:"[ ][ ][ ]*[0-9]" "
  4. for /f "tokens=1,2,*" %%a in (' %command% ') do (
  5.     if "%%b"=="" (
  6.         set DNS_Servers2=%%a
  7.     ) else (
  8.         set value=%%c
  9.         set value=!value:*:=!
  10.         set %%a_%%~nb=!value:* =!
  11.     )
  12. )
  13. echo 本机IP为:%IP_Address%  
  14. echo 子网掩码:%Subnet_Mask%
  15. echo 本机网关:%Default_Gateway%
  16. echo 首选 DNS:%DNS_Servers%
  17. echo 备用 DNS:%DNS_Servers2%
  18. 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 查找不到英文单词。

解决方法:

作者: dnvplj    时间: 2014-12-28 22:44

回复 5# tmplinshi
感谢版主的指教,我整不明白了,谢谢了。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2