Board logo

标题: [文本处理] [已解决]批处理怎样在hosts文件中判断是否有指定字符并执行不同操作 [打印本页]

作者: chguishan    时间: 2020-12-19 10:45     标题: [已解决]批处理怎样在hosts文件中判断是否有指定字符并执行不同操作

单位内网用了一个系统,但是要用域名才能访问,没有公网注册的域名,单位也没有DNS服务器,
想给内部每台想登录这个内网网站的电脑的hosts加上解析来通过域名登录这个内网网站。
网站IP172.16.5.1
网站域名aa.aaaa.com
下面的代码能达到要求,就是看着难看,帮我改一下,谢谢

判断hosts文件中是否有172.16.5.1 aa.aaaa.com
如果有就提示,如果没有加上再提示。(不能执行一次就写入一次)
最好是把提示改成直接打开网站。
谢谢
  1. @echo off
  2. (for /f "delims=" %%i in ('find /i "172.16.5.1 aa.aaaa.com"^<%windir%\system32\drivers\etc\hosts') do (
  3.     echo 已经达到要求,请登录http://aa.aaaa.com
  4. ))||(echo=>>%windir%\system32\drivers\etc\hosts | echo 172.16.5.1 tdm.vcyz.com>>%windir%\system32\drivers\etc\hosts | echo 已经达到要求,请登录http://aa.aaaa.com)
  5. pause
复制代码

作者: flashercs    时间: 2020-12-19 11:33

  1. @echo off
  2. set ip=172.16.5.1
  3. set domain=aa.aaa.com
  4. set hosts="%windir%\system32\drivers\etc\hosts"
  5. find /i "%ip% %domain%" %hosts%
  6. if errorlevel 1 >>%hosts% echo %ip% %domain%
  7. start "" "http://%domain%"
复制代码

作者: chguishan    时间: 2020-12-19 14:06

flashercs 发表于 2020-12-19 11:33



    谢谢flashercs,达到要求,判断有就不写入,没有就写入了,然后直接用默认的浏览器打开网站了。
但是有一点还请帮一下,这个是直接写到最后一行的后面,没有另起一行。
是这样在一行里:127.0.0.1 localhost172.16.5.1 aa.aaa.com
想另起一行最后是这样
127.0.0.1 localhost
172.16.5.1 aa.aaa.com
作者: flashercs    时间: 2020-12-19 15:03

本帖最后由 flashercs 于 2020-12-19 15:06 编辑

回复 3# chguishan
  1. @echo off
  2. set ip=172.16.5.1
  3. set domain=aa.aaa.com
  4. set hosts="%windir%\system32\drivers\etc\hosts"
  5. find /i "%ip% %domain%" %hosts%
  6. if errorlevel 1 >>%hosts% (
  7.   echo.
  8.   echo %ip% %domain%
  9. )
  10. start "" "http://%domain%"
复制代码

作者: chguishan    时间: 2020-12-19 15:21

回复 4# flashercs


    完美!
谢谢




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