Board logo

标题: [文本处理] 批处理脚本向host写入时,如何自行判断是否已存在目标条目 [打印本页]

作者: phoenix924    时间: 2011-12-21 16:42     标题: 批处理脚本向host写入时,如何自行判断是否已存在目标条目

本帖最后由 CrLf 于 2011-12-21 18:19 编辑

大家好,我初次接触批处理,很多问题都搞不懂,初级水平都谈不上,但是现在又急需用到,在这里向大家求教。
问题是:我需要用批处理修改host文件,但是我写完测试后发现,如果我反复的运行该批处理,那么就会反复的向host文件内添加所写的东西。希望能自动识别,运行批处理时,如果发现已经添加了就不再继续添加。
原批处理如下:
@echo 10.13.0.231 main.tttest.com>>C:\Windows\System32\Drivers\etc\hosts
@echo 10.13.0.231 main.ttmes.com>>C:\Windows\System32\Drivers\etc\hosts

谢谢大家!
作者: cjiabing    时间: 2011-12-21 16:50

  1. @echo off
  2. :aa
  3. set input=
  4. set /p "input=    请输入:"
  5. findstr  /i  /c:"%input%"  C:\Windows\System32\Drivers\etc\hosts&&echo;输入已存在,按任意键返回!&pause&goto aa
  6. echo;%input%>>C:\Windows\System32\Drivers\etc\hosts
  7. echo 添加完成!
  8. pause
复制代码

未测试,有问题反馈。
作者: phoenix924    时间: 2011-12-21 17:16

辛苦版主了,非常感谢,测试后向你汇报结果。
作者: bluewing009    时间: 2011-12-21 20:55

回复 2# cjiabing


    个人喜欢用errorleve判断……
作者: awk    时间: 2011-12-21 22:43

  1. @echo off
  2. set "str1=10.13.0.231 main.tttest.com"
  3. set "str2=10.13.0.231 main.ttmes.com"
  4. call :add "%str1%"
  5. call :add "%str2%"
  6. goto :eof
  7. :add
  8. findstr /i /c:"%~1" C:\Windows\System32\Drivers\etc\hosts
  9. if errorlevel 1 (
  10.     >>C:\Windows\System32\Drivers\etc\hosts echo,%~1
  11. )
复制代码

作者: cjiabing    时间: 2011-12-21 22:53

回复 4# bluewing009


    以前尝试过返回码,但后来觉得不够实用就选择性遗忘了。搞得现在都喜欢用IF&&||之类的。




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