::知道这个原理就好办了。
:: 但又要人性化,又要简洁,只怕有点难度。。。。
:: 哈哈…… 代码 N 长…………
- @echo off&color 0f&title 网址 屏蔽/解除屏蔽
- :: by 小楼一夜听春雨 2007-11-25
- set wjm=C:\WINDOWS\system32\drivers\etc
- set "str=127.0.0.1 "&set "kg= "
- set "tisi=echo\&echo %kg%注: 此操作需要经过杀毒软件的同意。"
- set "tisi2=echo %kg%=================================="
- set "yip=以下是已经被屏蔽的网址&echo ======================&echo\"
- set "npb=目前没有被屏蔽的网址。&echo ======================&echo\&echo\&echo\"
- set "tisi=%tisi%&%tisi2%&echo\&echo\"
- :loop
- setlocal EnableDelayedExpansion
- call :xiansi
- echo\&echo 请选择 { 1 屏蔽网址 } { 2 解除屏蔽 } { 3 全部解除屏蔽 }&echo\
- set /p xuan=请选择 [ 1,2,3 ]
- if "%xuan%"=="" (set xuan=a) else set xuan=%xuan:"=%
- if "%xuan%"=="1" goto jia
- if "%xuan%"=="2" goto _jiecu
- if "%xuan%"=="3" set pinbi3=y&goto _jiecu
- call :cuowu
- endlocal
- goto loop
- :_jiecu
- cls&call :xiansi
- if defined pinbi3 (
- for /l %%a in (1 1 %num%) do set wz=!wz! %%a
- goto jiecu
- )
- echo\&echo 输入已经屏蔽的网址前面的序号,解除屏蔽相应的网址。
- echo\&echo 解除屏蔽,可一次输入多个序号,用空格分开。
- echo\&echo 如:1 2 5 10 (即:解除1、2、5、10)
- echo\&echo 按“回车键”或“点关闭按钮”退出。。。&echo\
- set /p wz=请输入序号:
- if "!wz!"=="" exit
- set pand=!wz: =!
- echo !pand!|findstr "^[0-9].*$"&&goto jiecu
- call :cuowu
- endlocal
- goto loop
- :jiecu
- attrib -r %wjm%\hosts
- color 1f
- for /f "delims=" %%a in (%wjm%\hosts) do (
- set pin=
- for %%i in (%wz%) do if "%%a"=="!str!!%%i!" set pin=a
- if not defined pin echo %%a>>%wjm%\hosts1
- )
- set wz=&set "pinbi3="
- del/q %wjm%\hosts
- ren %wjm%\hosts1 hosts
- del/q %wjm%\hosts1
- attrib +r %wjm%\hosts
- cls&echo\&echo 解除屏蔽成功。。。
- endlocal
- goto loop
- :jia
- cls&%tisi%
- echo\&echo 请输入需要“屏蔽”的“单个”网址。
- echo\&echo 或 先在“某文档”里输入所有要屏蔽的网址,一行一个。
- echo\&echo 再在这里输入 “文档名” (含全路径和后缀名)
- echo\&echo 或将此文档拖放到此,可批量添加。
- echo\&echo 按“回车键”或“点关闭按钮”退出。。。&echo\
- set /p wdm=请输入文档名或网址:
- set wdm=%wdm:"=%
- if "%wdm%"=="" exit
- set wdm="%wdm%"
- if exist %wdm% (set "wdm=type %wdm%") else (set "wdm=echo %wdm%")
- attrib -r %wjm%\hosts
- for /f "delims=" %%a in ('%wdm%') do (
- color cf&echo !str!%%a>>%wjm%\hosts
- )
- attrib +r %wjm%\hosts
- cls&echo\&echo 屏蔽成功。。。
- endlocal
- goto loop
- :xiansi
- set you=&set xs=&set num=
- for /f "tokens=1* delims= " %%a in (%wjm%\hosts) do (
- if "%%a"=="127.0.0.1" set /a xs+=1
- if !xs! geq 2 (
- if !xs! equ 2 %tisi%&echo %yip%&set you=a
- set /a num+=1
- set !num!=%%b&echo ^(!num!^) %%b
- ))
- echo\
- if not defined you %tisi%&echo %npb%
- goto :eof
- :cuowu
- cls&echo\&echo 你的输入错误,请重新输入。。。&echo\
- goto :eof
复制代码
[ 本帖最后由 随风 于 2007-11-29 07:19 编辑 ] |