[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖
::知道这个原理就好办了。
::    但又要人性化,又要简洁,只怕有点难度。。。。
::         哈哈…… 代码 N 长…………

  1. @echo off&color 0f&title 网址 屏蔽/解除屏蔽
  2. :: by 小楼一夜听春雨 2007-11-25
  3. set wjm=C:\WINDOWS\system32\drivers\etc
  4. set "str=127.0.0.1       "&set "kg=                   "
  5. set "tisi=echo\&echo %kg%注: 此操作需要经过杀毒软件的同意。"
  6. set "tisi2=echo %kg%=================================="
  7. set "yip=以下是已经被屏蔽的网址&echo ======================&echo\"
  8. set "npb=目前没有被屏蔽的网址。&echo ======================&echo\&echo\&echo\"
  9. set "tisi=%tisi%&%tisi2%&echo\&echo\"
  10. :loop
  11. setlocal EnableDelayedExpansion
  12. call :xiansi
  13. echo\&echo 请选择 { 1 屏蔽网址 } { 2 解除屏蔽 } { 3 全部解除屏蔽 }&echo\
  14. set /p xuan=请选择 [ 1,2,3 ]
  15. if "%xuan%"=="" (set xuan=a) else set xuan=%xuan:"=%
  16. if "%xuan%"=="1" goto jia
  17. if "%xuan%"=="2" goto _jiecu
  18. if "%xuan%"=="3" set pinbi3=y&goto _jiecu
  19. call :cuowu
  20. endlocal
  21. goto loop
  22. :_jiecu
  23. cls&call :xiansi
  24. if defined pinbi3 (
  25.    for /l %%a in (1 1 %num%) do set wz=!wz! %%a
  26.    goto jiecu
  27. )
  28. echo\&echo 输入已经屏蔽的网址前面的序号,解除屏蔽相应的网址。
  29. echo\&echo 解除屏蔽,可一次输入多个序号,用空格分开。
  30. echo\&echo 如:1 2 5 10 (即:解除1、2、5、10)
  31. echo\&echo 按“回车键”或“点关闭按钮”退出。。。&echo\
  32. set /p wz=请输入序号:
  33. if "!wz!"=="" exit
  34. set pand=!wz: =!
  35. echo !pand!|findstr "^[0-9].*$"&&goto jiecu
  36. call :cuowu
  37. endlocal
  38. goto loop
  39. :jiecu
  40. attrib -r %wjm%\hosts
  41. color 1f
  42. for /f "delims=" %%a in (%wjm%\hosts) do (
  43.    set pin=
  44.    for %%i in (%wz%) do if "%%a"=="!str!!%%i!" set pin=a
  45.    if not defined pin echo %%a>>%wjm%\hosts1
  46. )
  47. set wz=&set "pinbi3="
  48. del/q %wjm%\hosts
  49. ren %wjm%\hosts1 hosts
  50. del/q %wjm%\hosts1
  51. attrib +r %wjm%\hosts
  52. cls&echo\&echo 解除屏蔽成功。。。
  53. endlocal
  54. goto loop
  55. :jia
  56. cls&%tisi%
  57. echo\&echo 请输入需要“屏蔽”的“单个”网址。
  58. echo\&echo 或 先在“某文档”里输入所有要屏蔽的网址,一行一个。
  59. echo\&echo 再在这里输入 “文档名” (含全路径和后缀名)
  60. echo\&echo 或将此文档拖放到此,可批量添加。
  61. echo\&echo 按“回车键”或“点关闭按钮”退出。。。&echo\
  62. set /p wdm=请输入文档名或网址:
  63. set wdm=%wdm:"=%
  64. if "%wdm%"=="" exit
  65. set wdm="%wdm%"
  66. if exist %wdm% (set "wdm=type %wdm%") else (set "wdm=echo %wdm%")
  67. attrib -r %wjm%\hosts
  68. for /f "delims=" %%a in ('%wdm%') do (
  69.    color cf&echo !str!%%a>>%wjm%\hosts
  70. )
  71. attrib +r %wjm%\hosts
  72. cls&echo\&echo 屏蔽成功。。。
  73. endlocal
  74. goto loop
  75. :xiansi
  76. set you=&set xs=&set num=
  77. for /f "tokens=1* delims= " %%a in (%wjm%\hosts) do (
  78.    if "%%a"=="127.0.0.1" set /a xs+=1
  79.    if !xs! geq 2 (
  80.      if !xs! equ 2  %tisi%&echo %yip%&set you=a
  81.      set /a num+=1
  82.      set !num!=%%b&echo ^(!num!^) %%b
  83. ))
  84. echo\
  85. if not defined you %tisi%&echo %npb%
  86. goto :eof
  87. :cuowu
  88. cls&echo\&echo  你的输入错误,请重新输入。。。&echo\
  89. goto :eof
复制代码

[ 本帖最后由 随风 于 2007-11-29 07:19 编辑 ]
2

评分人数

    • youxi01: PB + 6
    • novaa: 非常同意,功能全。好东西。PB + 4
技术问题请到论坛发帖求助!

TOP

回复 6# 的帖子

你是说的 这个 “title 网址 屏蔽/解除屏蔽”  吗?
技术问题请到论坛发帖求助!

TOP

哈哈 。。
那我就没办法了,除了26个字母,其它的我统统不认识。哈哈哈哈。。。。。
技术问题请到论坛发帖求助!

TOP

已经更新,这已经是最大努力了,
稍微作了些优化,和出错判断。
技术问题请到论坛发帖求助!

TOP

原帖由 somebody 于 2007-11-29 13:51 发表
哈哈~~~
我来揭示一下你们又犯了什么错误~~~
1. 加到hosts 里的网站,是不是所谓的病毒、木马网站,色情、垃圾网站先
      是的话,就一点机会都不要给,也就是说,不需要提供解除了

2. 哦,你们以为人家加个 ...


真是一山还有一山高,在下真是甘拜下风。。。。

按楼上的说法,最好不要上网,因为没有任何东西能彻底的预防病毒,
    就好象一个人,怕噎死而不敢喝水一样,又好像认为吃过了早饭就不用吃晚饭了一样,因为反正还是会饿的!

[ 本帖最后由 随风 于 2007-11-29 16:01 编辑 ]
技术问题请到论坛发帖求助!

TOP

返回列表