批处理脚本未完全运行

时间:2013-04-08 09:38:55

标签: windows batch-file automation

这是我第一次处理批处理文件。 我有一个带有ant的java项目。我把项目分成了两个子项目。我尝试以顺序方式使用批处理文件构建项目。 这是我的.bat文件的内容。:

start cmd
cd /d C:\Users\MeUser\Downloads\selenium-grid-1.0.8\examples\java2
ant run

cd /d C:\Users\MeUser\Downloads\selenium-grid-1.0.8\examples\java3
ant run

前三行正常运行,但之后没有任何反应。最后两行不起作用。我错过了什么,或者是否有其他方法可以顺序运行这些子项目? 谢谢。

1 个答案:

答案 0 :(得分:1)

ant批处理文件吗?

如果是这样,请尝试(或尝试无论如何)

CALL ant run

OR

START "windowname" ant run

您可以在/wait命令中添加START,让批处理等待第一个ant完成后再继续。

`start /?`

来自docco的提示。


(以下评论)

这是您的原始代码:

start cmd
cd /d C:\Users\MeUser\Downloads\selenium-grid-1.0.8\examples\java2
ant run

cd /d C:\Users\MeUser\Downloads\selenium-grid-1.0.8\examples\java3
ant run

这应该做的是:

  1. 启动一个全新的CMD窗口
  2. 更改为指定的目录
  3. 使用参数ant
  4. 启动可执行文件run

    现在 - 我刚刚下载了ANT,我发现它包含ANT.BATANT.CMD,但不包括ANT.EXE

    在您的环境中,您将拥有一个名为PATHEXT的变量,它是一个以分号分隔的有效可执行扩展名列表,按选择顺序排列。很可能,除非您采取具体措施进行更改,否则这将是PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC

    这意味着如果你已经将你的目录添加到你的路径中,那么将要执行的ANT是ANT.BAT(我相信,这是在说明中)

    执行ANT.BAT会将执行转移到ANT.BAT

    SO:

    我认为您没有理由生成新的CMD窗口。

    cd /d C:\Users\MeUser\Downloads\selenium-grid-1.0.8\examples\java2
    CALL ant run
    
    cd /d C:\Users\MeUser\Downloads\selenium-grid-1.0.8\examples\java3
    CALL ant run
    

    应该有用。

    cd /d C:\Users\MeUser\Downloads\selenium-grid-1.0.8\examples\java2
    START /wait "First ANT" ant run
    
    cd /d C:\Users\MeUser\Downloads\selenium-grid-1.0.8\examples\java3
    START /wait "Second ANT" ant run
    

    也应该有用。

    注意/wait的位置如果它位于start之后,则cmd知道它是start参数。如果它跟在ant之后,则cmd会认为它是ant参数。

    / wait只是告诉CMD等待,直到可执行文件完成后再继续。

    此:

    cd /d C:\Users\MeUser\Downloads\selenium-grid-1.0.8\examples\java2
    START "First ANT" ant run
    
    cd /d C:\Users\MeUser\Downloads\selenium-grid-1.0.8\examples\java3
    START "Second ANT" ant run
    

    也应该可以工作,但这次第二个ANT实例将与第一个实例并行启动(好吧,几毫秒后)

    还请注意"quoted string"之前的ant。 START语句的语法是允许"quoted string"作为窗口标题。如果您愿意,引用的字符串可以为空""。如果引用可执行文件,您甚至可以省略引用的字符串,在这种情况下,窗口标题为required