中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

中国DOS联盟论坛
现在时间是 2026-08-12 02:29
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 批处理 hosts问题 查看 978 回复 1
楼 主 批处理 hosts问题 发表于 2010-09-04 13:49 ·  中国 上海 东方有线
新手上路
积分 1
发帖 1
注册 2010-03-05 23:31
16年会员
UID 161665
性别 男
状态 离线
向左个批处理~但不会~
条件:有个a.txt文件,里面每行记录
127.0.0.1 域名1
127.0.0.1 域名3
127.0.0.1 域名7
怎么编辑命令,要求每次执行查看a.txt每行记录在hosts文件(%SystemRoot%\system32\drivers\etc\hosts)里是否已有,
如果没有就将这个行记录加入到hosts文件末尾,
如果有就不复制这行记录,并将下一行在a.txt里没有的记录复制到hosts文件末尾。

网上有:
@echo off set stHosts=X.X.X.X www.domainname.com
FOR /F "eol=# tokens=1 delims=" %%i in (%SystemRoot%\system32\drivers\etc\hosts) do if "%stHosts%"=="%%i" exit echo %stHosts%>> %SystemRoot%\system32\drivers\etc\hosts

但不能随时增加映射地址 域名

高手给范本,最好有注释~我想学习一下
2 发表于 2010-09-04 20:47 ·  中国 江苏 常州 电信
新手上路
积分 4
发帖 3
注册 2009-08-24 05:22
16年会员
UID 150882
性别 男
状态 离线
http://hi.baidu.com/wangbaohua3/blog/item/46f7d650da41f4113b29355e.html

@echo off&setlocal enabledelayedexpansion
set cc=C:\WINDOWS\system32\drivers\etc\hosts
for /f "tokens=2" %%i in (%cc%) do (
if "%%i"=="Copyright" (for /f "skip=17 delims=#" %%i in ('type %cc%^&del %cc%') do echo.%%i>>%cc%) else (for /f

"delims=#" %%i in ('type %cc%^&del %cc%') do echo.%%i>>%cc%))&(goto :m)
:m

echo #已去除
echo 追加HOSTS条目

set sthosts=67.132.51.1 srv1
for /f "tokens=1*" %%a in ('echo %sthosts%') do findstr /e /b /r /c:" *%%a *%%b *" %cc%>nul||echo %sthosts%>>%cc%
最后一句就行了
论坛跳转: