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

[文本处理] [已解决]批处理如何判断文件是否存在,存在则执行代码,不存在则退出!

本帖最后由 ksla 于 2016-1-22 13:49 编辑

1.首先运行:A.bat(A.bat可能会生成一个1.txt)
2.判断运行A.bat之后是否生成了1.txt文件
生成----则运行A.bat(循环运行A.bat,直到不生成1.txt)
不生成----运行两次A.bat也不出现1.txt则直接退出!

或者:
1.首先运行:A.bat(A.bat可能会生成一个1.txt)
2.判断运行A.bat之后是否生成了1.txt文件
生成----则运行A.bat(循环运行A.bat,直到不生成1.txt)
不生成----则直接退出!


有心人请帮帮忙,谢谢!

本帖最后由 ygqiang 于 2016-1-22 11:56 编辑

回复 1# ksla
  1. @echo off
  2. if exist a.bat (
  3. :next
  4. start "" a.bat
  5. if exist 1.txt (goto :next)
  6. exit
  7. )
复制代码

TOP

回复 2# ygqiang


    闪退...

TOP

回复 3# ksla


    你的a.bat  1.txt文件,都存在?

TOP

回复 4# ygqiang


    a.bat是存在,但1.txt要先运a.bat再生成出来的(可能生成,可能不生成。生成就继续运行a.bat,不生成就直接退出)

TOP

回复 5# ksla
  1.     @echo on
  2. if exist a.bat (
  3. :next
  4. echo exist a.bat
  5. start "" a.bat
  6. pause
  7. if exist 1.txt (echo exist 1.txt && pause && goto :next)
  8. echo not exist 1.txt
  9. pause
  10. exit
  11. )
  12. echo not exist a.bat
  13. pause
  14. exit
复制代码
运行这个,发截图看看?
1

评分人数

    • ksla: 乐于助人技术 + 1

TOP

本帖最后由 ksla 于 2016-1-22 15:32 编辑

回复 6# ygqiang

哥们,,谢谢你的回答,,我参考了论坛的帖子,已经制作出来了
  1. @echo off
  2. :: 运行a.bat
  3. call "a.bat"
  4. :: 判断运行a.bat之后是否生成1.txt,生成则运行goto 1,不生成则运行goto 2
  5. if exist 1.txt (
  6.   goto 1
  7. ) else (
  8.   if not exist 1.txt goto 2
  9. )
  10. ::生成则重新运行此代码
  11. :1
  12. call "判断文件是否存在.bat"
  13. goto 1
  14. ::不生成直接退出
  15. :2
  16. exit
  17. goto 2
复制代码

TOP

回复 6# ygqiang


    a.bat,生成1.txt,需要多久时间?

TOP

回复 8# ygqiang


    不定的,,有时十几分钟,有时几个钟!

TOP

回复 9# ksla


a.bat,生成1.txt,需要多久时间?.
不定的,,有时十几分钟,有时几个钟!

    判断运行A.bat之后是否生成了1.txt文件
那这个判断的代码,就需要修改下了。。

TOP

本帖最后由 ksla 于 2016-1-22 15:43 编辑

回复 10# ygqiang

我现在使用的是以下的批处理(确实很差劲的批处理),但尝试了几次,判断的代码也无出现错误,使用你新写的代码,还是闪退,,
  1. @echo off
  2. :3
  3. :: 运行a.bat
  4. call "a.bat"
  5. :: 判断运行a.bat之后是否生成1.txt,生成则运行goto 2,不生成则运行goto 1
  6. if exist 1.txt (
  7.   goto 2
  8. ) else (
  9.   if not exist 1.txt goto 1
  10. )
  11. ::不生成直接退出
  12. :1
  13. exit
  14. goto 1
  15. ::生成则重新运行此代码
  16. :2
  17. goto 3
复制代码

TOP

回复 11# ksla


    call "a.bat"是关键。。。

TOP

返回列表