这是我第一次处理批处理文件。 我有一个带有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
前三行正常运行,但之后没有任何反应。最后两行不起作用。我错过了什么,或者是否有其他方法可以顺序运行这些子项目? 谢谢。
答案 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
这应该做的是:
ant
run
醇>
现在 - 我刚刚下载了ANT
,我发现它包含ANT.BAT
和ANT.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
。