从Windows cmd脚本执行多个命令

Dar*_*ves 133 windows scripting cmd batch-file

我正在尝试编写一个Windows cmd脚本来执行多个串行任务.但是,它始终在脚本中的第一个命令后停止.

它停止后的命令是maven构建(不确定是否相关).

如何让它依次进行并依次运行每项任务?

安装任何软件或配置注册表等是完全不可能的 - 它必须在我担心的Windows XP安装上工作.

理想情况下,如果任何命令失败,我希望脚本中止,但这是一个"很好",不是必需的.

谢谢.

Lou*_*nco 137

当你打电话给另一个.bat文件时,我认为你需要在通话前"打电话":

call otherCommand.bat
Run Code Online (Sandbox Code Playgroud)

  • 事实上,在Windows上,`mvn`本身就是一个.bat文件,因此你需要在`call mvn install`中使用`call`.通常,您不需要创建额外的cmd文件. (5认同)
  • 请注意,批处理文件中不需要分号.你需要使用调用的原因是mvn本身是一个批处理文件,批处理文件需要通过调用相互调用,否则控制不会返回给调用者. (2认同)

小智 45

只有在第一个命令成功时,才能使用命令之间的&&符号执行第二个命令.更多信息请访问http://commandwindows.com/command1.htm

  • @TheM为了解决这个问题,您可以使用`start/B/WAIT calc` (2认同)

Gul*_*zim 25

不确定第一个命令停止的原因.如果你可以使它平行,你可以尝试类似的东西

start cmd.exe /C 1.bat      
start cmd.exe /C 2.bat
Run Code Online (Sandbox Code Playgroud)

  • 如果希望shell在命令执行后保持打开状态,请使用`/ K`代替`/ C`. (7认同)

mho*_*r38 23

我刚刚完成了创建批处理脚本以运行maven测试脚本的完全相同(ish)任务.问题是使用mvn clean install调用maven scrips ...本身就是一个脚本,因此需要使用调用mvn clean install来完成.

代码将工作

rem run a maven clean install
cd C:\rbe-ui-test-suite 
call mvn clean install
rem now run through all the test scripts
call mvn clean install -Prun-integration-tests -Dpattern=tc-login
call mvn clean install -Prun-integration-tests -Dpattern=login-1
Run Code Online (Sandbox Code Playgroud)

请注意使用电话.这将允许在批处理文件中使用连续的maven脚本.


JSO*_*C11 5

仅在第一个命令成功的情况下,使用双“&”号才能运行第二个命令:

cd Desktop/project-directory && atom .
Run Code Online (Sandbox Code Playgroud)

但是,即使第一个失败,仅使用一个与号也将尝试运行两个命令:

cd Desktop/project-directory & atom .
Run Code Online (Sandbox Code Playgroud)