Board logo

标题: [已解决]批处理怎样同时运行两个CALL? [打印本页]

作者: wolfan    时间: 2011-7-17 23:08     标题: [已解决]批处理怎样同时运行两个CALL?

  1. :1
  2. dir
  3. goto 3
  4. :2
  5. start xx.exe
  6. goto 3
  7. :3
  8. echo.
复制代码
求问如何让1、2同时运行,并在运行完后至3。
作者: cjiabing    时间: 2011-7-18 10:48

把第一个goto 3去掉就好了。
另外,批处理同一时间只能运行一个任务吧,除非双线程。
作者: wolfan    时间: 2011-7-19 22:37

哦~ 想法没说清。

是这样的。
  1. :all
  2. :1
  3. dir
  4. goto 3
  5. :2
  6. start xx
  7. goto 3
  8. :3
  9. set /p go==^>
  10. if %go%==1 goto 1
  11. if %go%==2 goto 2
  12. if %go%==3 goto all
复制代码
如此这样,当3的时候可以执行 1 和 2。而当1时就只执行1,2就2。
如果去了 GOTO 那不就没法操作1和2了吗~
作者: CUer    时间: 2011-7-19 22:43

3# wolfan


那你现在的问题是什么呢?
作者: CrLf    时间: 2011-7-19 23:02

本帖最后由 CrLf 于 2011-7-19 23:03 编辑

可以用 if 来判断要不要 goto 嘛,比如修改成这样:
  1. :1
  2. ...
  3. if %go%==1 goto 3
  4. :2
  5. ...
  6. :3
  7. set /p go=^>
  8. ...
复制代码

作者: wolfan    时间: 2011-7-19 23:16

5# CrLf

大人能给个详细示例不~             人家小白菜~  刚刚试了下,不成功啊。
作者: bluewing009    时间: 2011-7-19 23:18

也可以:
=1 call :1
=2 call :2
=3 call :1&&call :2&&call :3

每个标签后用eof回去。
作者: CrLf    时间: 2011-7-19 23:59

本帖最后由 CrLf 于 2011-7-20 00:00 编辑

6# wolfan
  1. :all
  2. :1
  3. dir
  4. if not "%go:"=@%"=="3" goto 3
  5. :2
  6. start xx
  7. :3
  8. set go=
  9. set /p go==^>
  10. set "go=%go:"=@%"
  11. if "%go%"=="1" goto 1
  12. if "%go%"=="2" goto 2
  13. if "%go%"=="3" goto all
复制代码

作者: wolfan    时间: 2011-7-20 11:52

7# bluewing009


花喵~ 用 && 没用啊,老是错误。 不过改用 &后到是OK了。
多谢~

多谢版主~




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