[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[网络连接] WIN10怎么用批处理获取主DNS和备用DNS?

  1. @echo off
  2. setlocal enabledelayedexpansion
  3. set command=" ipconfig /all | findstr /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 首选 DNS:%DNS_Servers%
  14. echo 备用 DNS:%DNS_Servers2%
  15. pause
复制代码
百度搜到的这个最后只能显示备用DNS,,,,首选DNS不会显示。。。。

执行这个命令 ipconfig /all > a.txt
把 a.txt 压缩上传
我试试
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 yhcfsr 于 2018-5-3 10:28 编辑
  1. @echo off
  2. set commamd="netsh interface ip show dnsservers|findstr "[0-9]*\.[0-9]*\.""
  3. for /f "delims=" %%a in ('%commamd%') do (
  4. if not defined DNS1 ( SET "DNS1=%%a" ) else ( set "DNS2=%%a" )
  5. )
  6. SET "DNS1=%DNS1: =%"&SET "DNS2=%DNS2: =%"
  7. echo;首选DNS:%DNS1:*:=%
  8. echo;备用DNS:%DNS2:*:=%
  9. pause
复制代码
又或者显示IP和DNS
  1. @echo off
  2. ipconfig /all|findstr "[0-9]*\.[0-9]*\."
  3. pause
复制代码
QQ 33892006

TOP

  1. set command=" ipconfig /all | findstr /i /b /r /c:" *DNS Servers" /c:" *DNS 服务器" /c:" *[0-9]" "
  2. for /f "tokens=1* delims=:" %%a in ('%command%') do (
  3.     if "%%b" == "" (set 备用=%%a) else (set 首选=%%b)
  4. )
  5. echo;%首选: =%
  6. echo;%备用: =%
  7. pause
复制代码

TOP

[attach]11201[/attach]回复 2# Batcher

TOP

这个首选DNS会变成IPV6地址。回复 4# WHY

TOP

回复 3# yhcfsr


    感谢,试过很好用。。。。。

TOP

回复 6# nssb123


    这样好了
  1. @echo off
  2. PowerShell "[string](ipconfig /all) -match '(?<=DNS 服务器)(?!DNS 服务器).*?((?:\d+\.){3}\d+) *((?:\d+\.){3}\d+)'|%%{$matches[1],$matches[2]}"
  3. pause
复制代码

TOP

回复 8# WHY


    谢谢,但是我试了下在CMD里运行这个和powershell里运行这个都会显示错误,,我已经用3楼的代码实现了,感谢。。。

TOP

  1. @echo off
  2. for /f "delims=" %%i in ('netsh interface ip show dnsservers ^| findstr "[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*"') do (
  3. if not defined DNS1 (
  4.         set "DNS1=%%i"
  5.     ) else (
  6.         set "DNS2=%%i"
  7.         goto :OutPut
  8.     )
  9. )
  10. :OutPut
  11. set "DNS1=%DNS1: =%"
  12. set "DNS2=%DNS2: =%"
  13. echo %DNS1:*:=%
  14. echo %DNS2:*:=%
  15. pause
复制代码
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 3# yhcfsr


我公司的电脑同时设置了有线和无线的主DNS、备DNS
结果获取到的是有线的主DNS和无线的备DNS
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

本帖最后由 xftvwuchao 于 2022-8-13 10:12 编辑

回复 8# WHY

PowerShell "[string](ipconfig /all) -match '(?<=DNS 服务器).*?((?:\d+\.){3}\d+) *((?:\d+\.){3}\d+)'|%%{$matches[1]}"
PowerShell "[string](ipconfig /all) -match '(?!DNS 服务器).*?((?:\d+\.){3}\d+) *((?:\d+\.){3}\d+)'|%%{$matches[2]}"

首选DNS:223.6.6.6
备用DNS:223.6.6.6

我把它分成两行了

怎么让结果这样显示  大神

TOP

返回列表