标题: [文本处理] [已解决]批处理怎样将屏蔽网站批量写入hosts? [打印本页]
作者: a87750530 时间: 2011-6-26 12:11 标题: [已解决]批处理怎样将屏蔽网站批量写入hosts?
本帖最后由 a87750530 于 2011-6-26 21:04 编辑
从恶意网站实验室下载的hosts,里面的内容如下- 115.47.219.95 www.aiqianming.cn
- 115.47.219.95 www.77112.com
- 115.47.219.95 www.6d6d.net
- .....
复制代码
想批量写入hosts文件找到这样的方法:- :hostspb
- mode con COLS=80 lines=40
- color 0a
- echo 115.47.219.95 www.aiqianming.cn >>C:\Windows\System32\Drivers\etc\hosts
- echo 115.47.219.95 www.77112.com >>C:\Windows\System32\Drivers\etc\hosts
- echo 115.47.219.95 www.6d6d.net >>C:\Windows\System32\Drivers\etc\hosts
- type C:\WINDOWS\system32\drivers\etc\hosts
- start notepad C:\WINDOWS\system32\drivers\etc\hosts
- echo hosts屏蔽完成...任意键返回
- pause >nul
- end
复制代码
上面的方法很是麻烦,每个网站都要在前面加echo ,后面要加>>C:\Windows\System32\Drivers\etc\hosts
能不能把网址如上面的列出来后,用批处理自动添加前后代码然后写入hosts
请大家帮忙一下!谢谢!
作者: batman 时间: 2011-6-26 12:32
- @echo off
- (for /f "skip=4 delims=" %%a in (%~fs0) do echo %%a)>%systemroot%\dirvers\etc\hosts
- goto :eof
- 下面写你要屏蔽的网站(一行一个)
复制代码
作者: batman 时间: 2011-6-26 12:44
或者:- @echo off
- more +4 %~fs0>%systemroot%\dirvers\etc\hosts
- goto :eof
- 下面写你要屏蔽的网站(一行一个)
复制代码
作者: a87750530 时间: 2011-6-26 13:53
- @echo off
- (for /f "delims=" %%a in (a.txt) do (
- set str=%%a
- setlocal enabledelayedexpansion
- echo;!str:115.=echo 115.!
- endlocal
- ))>tem
- move tem a.txt
- goto 2
- :2
- for /f "delims=" %%a in (a.txt) do (
- echo %%a>>C:\Windows\System32\Drivers\etc\hosts>>b.txt
- )
- start b.txt
- pause
- end
复制代码
我写了这样的代码,前面的能替换,结果到这里
- :2
- for /f "delims=" %%a in (a.txt) do (
- echo %%a>>C:\Windows\System32\Drivers\etc\hosts>>b.txt
- )
复制代码
就卡住了,能不能想想办法?把这个写入“>>C:\Windows\System32\Drivers\etc\hosts”加入在每行的最后一列
作者: tmplinshi 时间: 2011-6-26 13:56
4# a87750530
把什么内容加到最后一列?
作者: a87750530 时间: 2011-6-26 14:06
本帖最后由 a87750530 于 2011-6-26 14:09 编辑
5# tmplinshi
把这个内容“>>C:\Windows\System32\Drivers\etc\hosts”加在每一行的末尾- 如:115.47.219.95 anten3.zoomshare.com
- 变成
- echo 115.47.219.95 anten3.zoomshare.com >>C:\Windows\System32\Drivers\etc\hosts
复制代码
前面的echo我倒是会了,会面的执行就卡壳了!
超级版主,你写的代码结果测试貌似没有效果!很是深奥!
作者: tmplinshi 时间: 2011-6-26 14:08
- echo %%a^>^>C:\Windows\System32\Drivers\etc\hosts>>b.txt
复制代码
作者: a87750530 时间: 2011-6-26 14:16
- @echo off
- (for /f "delims=" %%a in (a.txt) do (
- set str=%%a
- setlocal enabledelayedexpansion
- echo;!str:115.=echo 115.!
- endlocal
- ))>tem
- move tem b.txt
- goto 2
- :2
- for /f "delims=" %%a in (b.txt) do (
- echo %%a^>^>C:\Windows\System32\Drivers\etc\hosts>>c.txt
- )
- start c.txt
- end
复制代码
搞定了,谢谢版主!
作者: batman 时间: 2011-6-26 14:52
不得不说楼主写的代码比我的要高深多了,本来可以一步实现的,楼主非要分成n步来完成。。。
作者: Hello123World 时间: 2011-6-26 15:33
- 115.47.219.95 www.aiqianming.cn
- 115.47.219.95 www.77112.com
- 115.47.219.95 www.6d6d.net
- .....
复制代码
假设以上内容保存在c:\hello.txt中,将批处理放在txt同一个目录。- for /f "delims=" %%i in (hello.txt) do @echo %%i>>C:\Windows\System32\Drivers\etc\hosts
- @echo hosts屏蔽完成...任意键返回
- pause >nul
复制代码
作者: a87750530 时间: 2011-6-26 20:43
实在是佩服各位版主的代码,其实是想做个批处理的小工具,结果发现自己水平实在是太低了,只好走点低级的分部完成了。谢谢各位了!
回复batman,你给的代码难道是这样用吗?实在深奥!- @echo off
- (for /f "skip=4 delims=" %%a in (%~fs0) do echo %%a)>%systemroot%\dirvers\etc\hosts
- goto :eof
- 115.47.219.95 www.aiqianming.cn
- 115.47.219.95 www.77112.com
- 115.47.219.95 www.6d6d.net
- ..........省略N个网址!
复制代码
作者: mxxcgzxxx 时间: 2011-6-29 09:57
11# a87750530 - for /f "skip=4 delims=" %%a in (%~fs0) do echo %%a
复制代码
从自身文本的第四行开始读取的意思.
%~fs0 代表自己
作者: HAT 时间: 2011-6-29 11:11
11# a87750530
more命令的基本用法之一,半点都不深奥。- @echo off
- more +3 %~fs0 >%systemroot%\dirvers\etc\hosts
- goto :eof
- 115.47.219.95 www.aiqianming.cn
- 115.47.219.95 www.77112.com
复制代码
作者: ygqiang 时间: 2011-6-30 14:17
你们都是用哪个方法解决的?
我只能用10楼的方法,才能成功。
其他各个楼层的方法,都不成功啊?
有什么方法可以放在1个bat文件里,就能解决问题?谢谢
作者: tmplinshi 时间: 2011-6-30 14:35
11# a87750530
more命令的基本用法之一,半点都不深奥。@echo off
more +3 %~fs0 >%systemroot%\dirvers\etc\hosts
goto :eof
115.47.219.95 www.aiqianming.cn
115.47.219.95 www.77112.com
HAT 发表于 2011-6-29 11:11
如果批处理是 c:\a&b.bat,%~fs0 的结果还是 c:\a&b.bat,导致出错。
作者: tmplinshi 时间: 2011-6-30 14:37
你们都是用哪个方法解决的?
我只能用10楼的方法,才能成功。
其他各个楼层的方法,都不成功啊?
有什么方法可以放在1个bat文件里,就能解决问题?谢谢
ygqiang 发表于 2011-6-30 14:17
13 楼的代码不能用吗?
作者: ygqiang 时间: 2011-7-1 08:19
13 楼的代码不能用吗?
tmplinshi 发表于 2011-6-30 14:37
对,使用了,没有效果!
作者: ygqiang 时间: 2011-7-1 08:24
本帖最后由 ygqiang 于 2011-7-1 08:36 编辑
晕。
13楼路径有错误。- @echo off
- more +3 %~fs0 >%systemroot%\system32\drivers\etc\hosts
- goto :eof
- 174.36.30.67 dropbox.com
- 174.36.30.71 www.dropbox.com
- 75.101.129.115 dl.dropbox.com
- 75.101.159.151 dl-web.dropbox.com
- 174.36.30.67 forums.dropbox.com
- 174.36.30.71 www.dropbox.com
- ....
复制代码
解决了system32,版主没有加这个路径。
drivers这个拼写错误。
作者: ygqiang 时间: 2011-7-1 08:43
但18楼的方法,有个缺陷:
会将原来hosts文件的内容全部擦除,而不是添加到hosts文件里面。
以下方法,可以解决。- %windir%\system32\NOTEPAD.EXE %windir%\system32\drivers\etc\hosts
- pause
- @echo off
- more +5 %~fs0 >>%systemroot%\system32\drivers\etc\hosts
- goto :eof
- 1
- 174.36.30.67 dropbox.com
- 174.36.30.71 www.dropbox.com
- 75.101.129.115 dl.dropbox.com
- 75.101.159.151 dl-web.dropbox.com
- 174.36.30.67 forums.dropbox.com
- 174.36.30.71 www.dropbox.com
复制代码
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |