Board logo

标题: [系统相关] 批处理如何实现以弹出对话框方式提示写入文本是否成功/失败? [打印本页]

作者: wfndh    时间: 2016-7-30 14:30     标题: 批处理如何实现以弹出对话框方式提示写入文本是否成功/失败?

本帖最后由 pcl_test 于 2016-7-30 22:19 编辑
  1. set stHosts=127.0.0.1 www.56.com
  2. FOR /F "eol=# tokens=1 delims=" %%i in (%systemroot%\system32\drivers\etc\hosts) do if "%stHosts%"=="%%i" exit
  3. echo %stHosts%>> %systemroot%\system32\drivers\etc\hosts
复制代码
大神帮帮忙,现在代码是没有问题,双击直接运行,现在就是想如何给他添加上执行后成功的语句提示,或失败后的提示语句呢? 比如 如果双击运行,他成功执行写入了,就提己成功写入,如果是写入失败,那就让他提示写入失败,我添加不成功,希望朋友帮帮我
作者: wfndh    时间: 2016-7-30 14:30

帮帮忙,谢谢
作者: gawk    时间: 2016-7-30 14:37

  1. @echo off
  2. set stHosts=127.0.0.1 www.56.com
  3. for /f "eol=# tokens=1 delims=" %%i in (%systemroot%\system32\drivers\etc\hosts) do (
  4.     if "%stHosts%"=="%%i" (
  5.         echo 已存在,无需重复添加。
  6.         goto :end
  7.     )
  8. )
  9. echo %stHosts%>> %systemroot%\system32\drivers\etc\hosts
  10. if errorlevel 1 (
  11.     echo 添加失败
  12. ) else (
  13.     echo 添加成功
  14. )
  15. :end
  16. pause
复制代码

作者: wfndh    时间: 2016-7-30 14:50

回复 3# gawk


    老大你好,我想要的提示是弹出窗口提示啊,不是在文件提示,像这样的弹窗提示
作者: wfndh    时间: 2016-7-30 15:10

老大 有个问题,写入失败他还是提示成功啊,我测试了把hosts文件的权限设为只读,然后里面是空白的,然后再你的命令运行,明明是写入失败,不成功的,可是你的命令还是提示写入成功,帮帮看看哪里出问题好么?
作者: pcl_test    时间: 2016-7-30 17:53

  1. @echo off
  2. set "str=127.0.0.1 www.56.com"
  3. set "hosts=%systemroot%\system32\drivers\etc\hosts"
  4. >nul find /i "%str%" "%hosts%"&&(set "message=已存在"&goto tishi)||>>"%hosts%" (echo;&echo;%str%)
  5. >nul find /i "%str%" "%hosts%"&&set "message=添加成功"||set "message=添加失败"
  6. :tishi
  7. mshta vbscript:msgbox("%message%",,"提示")(close)
  8. pause
复制代码

作者: gawk    时间: 2016-7-30 22:03

回复 5# wfndh
  1. @echo off
  2. set "stHosts=127.0.0.1 www.56.com"
  3. for /f "eol=# tokens=1 delims=" %%i in (%systemroot%\system32\drivers\etc\hosts) do (
  4.     if "%stHosts%"=="%%i" (
  5.         echo 已存在,无需重复添加。 | msg %username%
  6.         goto :end
  7.     )
  8. )
  9. echo %stHosts%>> %systemroot%\system32\drivers\etc\hosts&&goto :Success||goto :Fail
  10. :Success
  11. echo 添加成功 | msg %username%
  12. goto :end
  13. :Fail
  14. echo 添加失败 | msg %username%
  15. goto :end
  16. :end
  17. pause
复制代码

作者: gawk    时间: 2016-7-30 22:04

回复 4# wfndh


    从顶楼的描述很难猜测出你想要什么样的提示
作者: wfndh    时间: 2016-7-31 11:14

回复 6# pcl_test


    谢谢
作者: wfndh    时间: 2016-7-31 11:15

回复 7# gawk


    谢谢
作者: wfndh    时间: 2016-8-4 20:50

回复 6# pcl_test


    版主大大你好,你的这个代码怎么添加一个提示弹出窗口呢?就是打开这个批处理后 首先会弹出一个说明文字的对话框 比如说叫他们运行前先退出360,点击确定或30秒后自动执行你上面的代码呢?我试了很多办法都失败,就是打开这个批处理前会弹出一个说明的对话窗口,点击确定或多少秒后才执行你上面的代码呢?
作者: wfndh    时间: 2016-8-4 20:53

回复 7# gawk


    就是增加一个运行你代码前的一个提示窗口,弹出的窗口,点击确定后或在多少秒后才执行你上面的代码,谢谢
作者: pcl_test    时间: 2016-8-4 23:02

回复 11# wfndh


@echo off
mshta vbscript:msgbox("退出安全保护软件",,"提示")(close)
set "str=127.0.0.1 www.56.com"
……




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