标题: [文本处理] 批处理脚本向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
- @echo off
- :aa
- set input=
- set /p "input= 请输入:"
- findstr /i /c:"%input%" C:\Windows\System32\Drivers\etc\hosts&&echo;输入已存在,按任意键返回!&pause&goto aa
- echo;%input%>>C:\Windows\System32\Drivers\etc\hosts
- echo 添加完成!
- pause
复制代码
未测试,有问题反馈。
作者: phoenix924 时间: 2011-12-21 17:16
辛苦版主了,非常感谢,测试后向你汇报结果。
作者: bluewing009 时间: 2011-12-21 20:55
回复 2# cjiabing
个人喜欢用errorleve判断……
作者: awk 时间: 2011-12-21 22:43
- @echo off
- set "str1=10.13.0.231 main.tttest.com"
- set "str2=10.13.0.231 main.ttmes.com"
- call :add "%str1%"
- call :add "%str2%"
- goto :eof
-
- :add
- findstr /i /c:"%~1" C:\Windows\System32\Drivers\etc\hosts
- if errorlevel 1 (
- >>C:\Windows\System32\Drivers\etc\hosts echo,%~1
- )
复制代码
作者: cjiabing 时间: 2011-12-21 22:53
回复 4# bluewing009
以前尝试过返回码,但后来觉得不够实用就选择性遗忘了。搞得现在都喜欢用IF&&||之类的。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |