[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] [已解决]批处理怎样在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
复制代码
俺是新新新手,多谢帮助

回复 4# flashercs


    完美!
谢谢
俺是新新新手,多谢帮助

TOP

本帖最后由 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%"
复制代码
1

评分人数

    • chguishan: 完美解决问题,技术嗷嗷的技术 + 1
微信:flashercs
QQ:49908356

TOP

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
俺是新新新手,多谢帮助

TOP

  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%"
复制代码
1

评分人数

    • chguishan: 谢谢,我又学到了一点技术 + 1
微信:flashercs
QQ:49908356

TOP

返回列表