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

[文本处理] 判断文件是否存在并删除文件的 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
复制代码

  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
复制代码
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

回复 2# xxpinqz


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

TOP

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

TOP

我不太会写代码,但是这个代码是经过我测试的,没有问题,不过用到了标号和跳转命令,似乎不是太简洁!
  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
复制代码

TOP

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

TOP

回复 3# lansemouzi
bb.txt改为bb.txt 2>nul
初学BAT,非专业。代码不适当之处还望前辈们多多指点。在此表示感谢!

TOP

返回列表