Board logo

标题: [文件操作] [已解决]求助,批处理为何总是会输出? [打印本页]

作者: pengli0108    时间: 2012-11-27 15:37     标题: [已解决]求助,批处理为何总是会输出?

  1. @echo off
  2. for %%i in (d:\QAVerify\*.ts) do d:\QAVerify\QAVerify.exe -f %%i
  3. if not exist *.ts goto a
  4. :a
  5. if not exist *.mpg (echo No available stream to be analyzed) else (goto b)
  6. :b
  7. for %%i in (d:\QAVerify\*.mpg) do d:\QAVerify\QAVerify.exe -f %%i
  8. pause
复制代码
问题是:有ts文件,它也会在最后输出 No available stream to be analyzed
请教下。。。本人初学者,就是为了工作方便
作者: apang    时间: 2012-11-27 16:29

  1. @echo off
  2. if exist "d:\QAVerify\*.ts" (
  3.   set "a=1"
  4.   for %%i in (d:\QAVerify\*.ts) do d:\QAVerify\QAVerify.exe -f "%%i"
  5. )
  6. if exist "d:\QAVerify\*.mpg" (
  7.   set "b=1"
  8.   for %%i in (d:\QAVerify\*.mpg) do d:\QAVerify\QAVerify.exe -f "%%i"
  9. )
  10. if "%a%%b%"=="" echo No available stream to be analyzed
  11. pause
复制代码
试一下看
作者: pengli0108    时间: 2012-11-27 16:56

回复 2# apang


    可以了,兄台。
   非常感谢你的帮助
   自己有一点点困惑,为何我最初的代码,无论有没有合适的stream文件,它都会输入No available。。。呢?
作者: cutebe    时间: 2012-11-27 17:23

批处理顺序按行执行

(行1)→ (行2)→(行3)(判断)
如果不存在 *.TS 跳到标签 :a (行4)
如果存在,第三行结束,继续下一行 (行4) (同上面一样)

所以无论有没有TS文件, 都会显示了
作者: pengli0108    时间: 2012-11-28 10:38

回复 4# cutebe


    谢谢,有点儿明白了
   只是觉得这样,那goto 不是就失去了其控制的功能,反正都是自上而下?
作者: gapkiller    时间: 2012-11-28 10:57

  1. @echo off
  2. for %%i in (d:\QAVerify\*.ts) do d:\QAVerify\QAVerify.exe -f %%i
  3. if not exist *.ts goto a
  4. goto end
  5. :a
  6. if not exist *.mpg (echo No available stream to be analyzed) else (goto b)
  7. goto end
  8. :b
  9. for %%i in (d:\QAVerify\*.mpg) do d:\QAVerify\QAVerify.exe -f %%i
  10. :end
  11. pause
复制代码

作者: pengli0108    时间: 2012-11-28 14:38

回复 6# gapkiller


    非常感谢,你让我这个困惑得到了很好的解决
   也谢谢大家的帮助。呵呵,这样的良好的氛围的论坛真好




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