首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么只执行此Windows批处理文件的第一行,而在命令shell中执行所有三行?

为什么只执行此Windows批处理文件的第一行,而在命令shell中执行所有三行?
EN

Stack Overflow用户
提问于 2010-10-28 03:09:55
回答 4查看 112K关注 0票数 192

我有一个批处理文件,它依次执行三个Maven命令。每个命令都可以在脚本中成功执行-单独执行!但是,当我将所有三个命令都添加到同一个文件中时,只有第一个命令会在脚本退出之前执行。知道为什么吗?

mvn install:install-file -DgroupId=gdata -DartifactId=base -Dversion=1.0 -Dfile=gdata-base-1.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=blogger -Dversion=2.0 -Dfile=gdata-blogger-2.0.jar  -Dpackaging=jar -DgeneratePom=true
mvn install:install-file -DgroupId=gdata -DartifactId=blogger-meta -Dversion=2.0 -Dfile=gdata-blogger-meta-2.0.jar  -Dpackaging=jar -DgeneratePom=true

此外,如果我复制所有这三个命令并将它们粘贴到命令外壳(cmd.exe)中,它们将一个接一个地执行,没有任何问题。因此,这显然是dos批处理文件的一些问题。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-10-28 03:29:29

Maven使用批处理文件来执行其业务。对于任何批处理脚本,都必须使用call命令调用另一个脚本,以便它知道在调用的脚本完成后返回到您的脚本。尝试将call作为所有命令的前缀。

您可以尝试的另一件事是使用start命令,它的工作方式应该与此类似。

票数 330
EN

Stack Overflow用户

发布于 2010-10-28 03:12:46

应该是特定的mvn命令exec没有返回,因此不会执行其余的命令。

票数 1
EN

Stack Overflow用户

发布于 2010-10-28 03:23:25

尝试编写以下批处理文件并执行它:

Echo one
cmd
Echo two
cmd
Echo three
cmd

只有前两行代码会被执行。但是,如果在命令提示符下输入"exit“,则会处理接下来的两行。这是一个加载另一个的shell。

要确保脚本中不会发生这种情况,只需在第一个命令结束时键入"exit“即可。

哈!

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4036754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档