Board logo

标题: [文本处理] 判断文件是否存在并删除文件的 bat 为何执行失败? [打印本页]

作者: lansemouzi    时间: 2013-12-17 13:47     标题: 判断文件是否存在并删除文件的 bat 为何执行失败?

  1. @echo off
  2. dir s*.exe
  3. if %errorlevel%==0
  4. del bb.txt && echo "have already delete bb.txt"
  5. echo "no files like s*.exe“
  6. pause>nul
复制代码
大侠,上面的代码我想要实现的功能是:
查看是否有 s*.exe ,如果有那么删除 bb.txt并且 显示have already delete bb.txt ,如果没有s*.exe,显示"no" files like s*.exe,然后暂停。

但是该脚本在运行的时候,并没有将 bb.txt 删除,不知道那里写的不对,请指教。对了,这个脚本是我根据 下面的代码自己修改的。很感激大家,我刚开始学习,还请多帮帮我!谢谢!
  1. @echo off
  2. dir s*.exe || echo Didn't exist file s*.exe & pause & exit
复制代码

作者: xxpinqz    时间: 2013-12-17 14:35

  1. @echo off
  2. if exist "s*.exe" (
  3.     del /f bb.txt
  4.     echo "have already delete bb.txt"
  5. ) else (
  6.     echo "no files like s*.exe“
  7. )
  8. pause>nul
复制代码

作者: lansemouzi    时间: 2013-12-17 15:37

回复 2# xxpinqz


    刚才试了一下  如果路径下存在 bb.txt  ,没有问题可以删除;但是如果在该路径下没有bb.txt 那么在cmd 下还是会显示 “找不到bb.txt, have already delete bb.txt” 。所一代码还是有问题的,还请帮忙看看,谢谢。
作者: lifei259    时间: 2013-12-17 17:01

  1. @echo off
  2. if exist "s*.exe" (
  3. if exist bb.txt del /f bb.txt&echo "have already delete bb.txt"
  4. ) else (
  5. echo "no files like s*.exe"
  6. )
  7. pause>nul
复制代码

作者: binghejin    时间: 2013-12-17 18:24

我不太会写代码,但是这个代码是经过我测试的,没有问题,不过用到了标号和跳转命令,似乎不是太简洁!
  1. @echo off
  2. if not exist s*.exe goto 没有
  3. goto 有
  4. :有
  5. if not exist bb.txt goto 没有bb
  6. goto 有bb
  7. :没有
  8. echo "no" files like s*.exe
  9. goto end
  10. :没有bb
  11. echo have already delete bb.txt
  12. goto end
  13. :有bb
  14. @del bb.txt
  15. echo have already delete bb.txt
  16. goto end
  17. :end
  18. pause
复制代码

作者: binghejin    时间: 2013-12-17 18:28

4楼的我验证了一下,如果当前路径下有s*.exe文件,同时还有bb.txt文件,那么没问题,可以删除bb.txt文件,同时显示一段文字,但是如果仅仅有s*.exe而没有bb.txt文件,那么就没有任何显示,如果达到了你的要求,就可以直接使用4楼的代码,比我的要简洁多了!
作者: xxpinqz    时间: 2013-12-18 00:59

回复 3# lansemouzi
bb.txt改为bb.txt 2>nul




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