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

[文件操作] [已解决]求助,批处理为何总是会输出?

  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
请教下。。。本人初学者,就是为了工作方便
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

  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
复制代码
试一下看
1

评分人数

TOP

回复 2# apang


    可以了,兄台。
   非常感谢你的帮助
   自己有一点点困惑,为何我最初的代码,无论有没有合适的stream文件,它都会输入No available。。。呢?

TOP

批处理顺序按行执行

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

所以无论有没有TS文件, 都会显示了
1

评分人数

如无特别说明,代码测试环境均为 XP SP3

TOP

回复 4# cutebe


    谢谢,有点儿明白了
   只是觉得这样,那goto 不是就失去了其控制的功能,反正都是自上而下?

TOP

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

评分人数

TOP

回复 6# gapkiller


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

TOP

返回列表