无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 5388|回复: 5

探测dns 畅通的cmd脚本

[复制链接]
发表于 2012-1-21 18:51:29 | 显示全部楼层 |阅读模式
p_DNS2.7z (951 Bytes, 下载次数: 76)
发表于 2012-1-22 13:49:31 | 显示全部楼层
我开始加的是>nul 2>nul,为什么就不行呢,运行后一闪而过。而你这个就可以。
回复

使用道具 举报

 楼主| 发表于 2012-1-22 11:36:15 | 显示全部楼层

回复 #4 freesoft00 的帖子

reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Security Client" /v "InstallLocation"   2^>nul

看看能用不。

[ 本帖最后由 dos时代菜鸟 于 2012-1-22 11:39 编辑 ]
回复

使用道具 举报

发表于 2012-1-22 10:25:55 | 显示全部楼层
支持并欣赏一下,新年快乐了!


另外请教一个问题
  1. @echo off
  2. color 4f
  3. ::=================================================================================================
  4. set ph=%~sdp0
  5. title=%ph%
  6. for /f "tokens=2,*" %%i in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Security Client" /v "InstallLocation"') do (
  7. set MSEinstall=%%j
  8. )
  9. ping 127.0.0.1 -n 2 >nul
  10. :start
  11. title (*^__^*)
  12. cls
  13. set select=
  14. set /p select=【选择M将下载离线更新包,选择U调用命令行更新程序】:
  15. if /i "%select%"=="M" (
  16. goto select
  17. ) else (
  18. if /i "%select%"=="U" (
  19. goto up
  20. ) else (
  21. goto start
  22. )
  23. )
  24. :up
  25. title %MSEinstall%\Antimalware\MpCmdRun.exe
  26. "%MSEinstall%\Antimalware\MpCmdRun.exe" -SignatureUpdate
  27. msg %username% "命令行方式更新结束"
  28. ping 127.0.0.1 -n 3 >nul
  29. goto start
  30. ::====================================================================================================
  31. :select
  32. set sa=NA
  33. set ss=NA
  34. if not exist "%ph%mpam-fe.exe" (goto s1) else (goto s2)
  35. goto start
  36. :s1
  37. cls
  38. set /p sa=【选择y返回,其他键将下载更新包】:
  39. if /i "%sa%"=="y" (goto start) else (goto pack)
  40. goto s1
  41. :s2
  42. cls
  43. echo 下载结束或mpam-fe.exe已存在
  44. set /p ss=【选择y将重新下载离线更新包,其他键安装更新包】:
  45. if /i "%ss%"=="y" (
  46. del /f /a /q "%ph%mpam-fe.exe"
  47. ping 127.0.0.1 -n 2 >nul
  48. goto pack
  49. ) else (
  50. goto setup
  51. )
  52. goto s2
复制代码


reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Microsoft Security Client" /v "InstallLocation"
如果不存在上面的注册表键值会在批处理中显示错误,怎么样屏蔽这个错误?

[ 本帖最后由 freesoft00 于 2012-1-22 10:29 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2012-1-22 09:15:48 | 显示全部楼层
利用 wmic 的 nicconfig 别名功能,实现这个目的会更简单一些
涉及命令: wmic /setlocal /echo /for /if /errorlevel /set /goto /findstr /ping

--------------------代码:--------
@echo off & SETLOCAL ENABLEDELAYEDEXPANSION
title 检测 DNS 畅通情况...
echo 正在获取 DNS 设置....
echo.
for /f "skip=1 delims=} tokens=1" %%c in ('wmic nicconfig get DNSServerSearchOrder') do (
  set "l1=%%c"
  set "l1=!l1:{=!"
  for %%x in (!l1!) do call:p %%~x
)
echo 检测完毕,按任意键退出! & pause >nul
GOTO :eof
:p
ECHO 检测网路 %1..........
ping %1 -n 3 >nul
if not errorlevel 1 (echo DNS:[%1] 畅通!) else (echo DNS:[%1] 不通!)
ECHO.


[ 本帖最后由 dos时代菜鸟 于 2012-1-22 09:18 编辑 ]
回复

使用道具 举报

 楼主| 发表于 2012-1-21 19:06:04 | 显示全部楼层
要只检查第一个 DNS ,就简单多了。一句话就可以解决。p处理都不用编。

for /f "delims=: tokens=2" %c in ('ipconfig /all^| find /i "dns servers"') do (@ping %c -t)

[ 本帖最后由 dos时代菜鸟 于 2012-1-22 09:18 编辑 ]
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2026-3-3 19:04

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表