Board logo

标题: [已解决]批处理for循环语句为何打不开千千静听? [打印本页]

作者: er8852973    时间: 2011-8-8 12:36     标题: [已解决]批处理for循环语句为何打不开千千静听?

本帖最后由 er8852973 于 2011-8-8 14:19 编辑
  1. :a
  2. "C:\Program Files\TTPlayer\TTPlayer.exe"
  3. for /l %%i in (1 1 3) do (
  4. call :a
  5. )
复制代码
请问我这个执行三次千千静听的语句 怎么不能的打开千千静听呢
作者: Batcher    时间: 2011-8-8 12:50

  1. start "" "C:\Program Files\TTPlayer\TTPlayer.exe"
复制代码

作者: broly    时间: 2011-8-8 13:19

建议把循环放在最后,运行程序用  start
  1. for /l %%i in (1 1 3) do (
  2. call :a
  3. )
  4. :a
  5. start "" "C:\Program Files\TTPlayer\TTPlayer.exe"
复制代码

作者: er8852973    时间: 2011-8-8 13:37

哦 我说错了 不是不能打开 是不停打开 不停的播放千千静听
作者: er8852973    时间: 2011-8-8 13:42

本来是设置执行三次的  但弹出千千静听N次 关了N次 还是打开 就是关闭后又打开 可不是三次啊 怎么回事呢
作者: Batcher    时间: 2011-8-8 13:55

回复 5# er8852973


因为你的for循环属于:a下面的一部分,所以死循环了。
作者: broly    时间: 2011-8-8 13:55

因为你使用了 call  语句,调用的标签 a 在批处理的开头,而且执行完了之后没有结束,就形成了一个死循环。
可以改为:
  1. for /l %%i in (1 1 3) do (
  2. call :a
  3. )
  4. :a
  5. start "" "C:\Program Files\TTPlayer\TTPlayer.exe"
复制代码
或者
  1. :a
  2. start "" "C:\Program Files\TTPlayer\TTPlayer.exe"
  3. goto :eof
  4. for /l %%i in (1 1 3) do (
  5. call :a
  6. )
复制代码

作者: Hello123World    时间: 2011-8-10 20:07

开始看代码以为是执行4次,倒没想到是死循环……




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