Board logo

标题: [文本处理] 批处理如何判断hosts文件中的空行? [打印本页]

作者: oett    时间: 2011-11-29 15:45     标题: 批处理如何判断hosts文件中的空行?

想要实现向hosts文件添加新的解析信息,但是,如何才能判断在hosts文件中最后一行是空行?

空行的话,添加进来的解析信息就会直接和原来的最后一行在一起显示,就失效了。

如果是不空行,那就用echo.添加一个空行,然后添加hosts解析信息(这个我会)。但是现在不知道怎么判断,高手帮忙搞搞。

主要是不想让hosts文件中出现N多空行,所以想解决下。
作者: 冷玉公子    时间: 2011-11-29 20:31

你用 echo 127.0.0.1 loaclhost>>hosts 就不会有问题 不用去判断空行的
作者: powerbat    时间: 2011-11-29 20:46

  1. set hosts=%SystemRoot%\system32\drivers\etc\hosts
  2. findstr /v $ %hosts% && echo;>%hosts%
  3. echo ip  addr>>%hosts%
复制代码

作者: abcdshenji    时间: 2011-11-29 20:49

  1. (sed -n $p|findstr/x ^$&&echo 是空行||echo 不是空行)<%windir%\system32\drivers\etc\hosts
复制代码

作者: wolfan    时间: 2011-11-30 16:50

  1. echo. >>%winroot%\system32\drivers\etc\hosts
复制代码
加一个空行不就好了。

作者: oett    时间: 2011-12-2 11:28

2楼的和5楼相似
3楼的我试过了,结果hosts文件被清空了。只能加当前一条。
4楼的我试过了,'sed' 不是内部或外部命令,也不是可运行的程序。
5楼的我也会,只是以后每次加的时候,都会多一个空行,不紧凑。
作者: abcdshenji    时间: 2011-12-2 11:36

回复 6# oett


    sed是三方工具,需要先下载的(http://bbs.bathome.net/thread-1114-1-1.html),放在system32目录
作者: powerbat    时间: 2011-12-2 12:36

把>改成>>不就得了
  1. set hosts=%SystemRoot%\system32\drivers\etc\hosts
  2. findstr /v $ %hosts% >nul && echo;>>%hosts%
  3. echo ip  addr>>%hosts%
复制代码

作者: awk    时间: 2011-12-2 12:40

回复 5# wolfan


经鉴定,你没看清楼主在问什么。




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2