从Windows cmd脚本执行多个命令
我试图编写一个Windows cmd脚本来执行几个系列任务。 但是,在脚本中的第一个命令之后它总是停止。
它停止后的命令是一个maven构build(不知道这是相关的)。
我该如何让它继续进行并依次运行每个任务?
安装任何软件或configurationregistry等是完全没有问题的 – 它必须工作在香草Windows XP安装恐怕。
理想情况下,如果有任何命令失败,我希望脚本中止,但是这是一个“很好有”,不是必需的。
谢谢。
当你调用另一个.bat文件时,我认为你需要在调用之前的“呼叫”:
call otherCommand.bat
只有第一个命令成功时,才可以使用命令之间的&&符号执行第二个命令。 更多信息在这里http://commandwindows.com/command1.htm
不知道为什么第一个命令停止。 如果你能平行,你可以尝试类似的东西
start cmd.exe /C 1.bat start cmd.exe /C 2.bat
我刚刚做了完全相同的(ISH)任务,创build批处理脚本来运行Maventesting脚本。 问题是,调用maven脚本与mvn干净安装…本身就是一个脚本,所以需要完成调用mvn干净安装。
代码将工作
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
请注意使用通话。 这将允许在batch file中使用连续的maven脚本。
如果您在Windows中运行,则可以使用以下命令。
驾驶:
cd "Script location" schtasks /run /tn "TASK1" schtasks /run /tn "TASK2" schtasks /run /tn "TASK3" exit
我不知道你的问题的直接答案,但是如果你做了很多这些脚本,可能值得学习一个更强大的Perl语言。 Windows的免费实现(例如,activestate,cygwin)。 我发现这对我自己的任务来说是值得的。
编辑:
正如@Ferrucciobuild议的,如果你不能安装额外的软件,可以考虑使用vbscript和/或javascript。 它们被内置到Windows脚本主机中。
只有在第一个成功的情况下,使用双和号才会运行第二个命令:
cd Desktop/project-directory && atom .
在那里,只使用一个和号将尝试运行这两个命令,即使第一个失败:
cd Desktop/project-directory & atom .
请注意,batch file中不需要分号。 而你需要使用call的原因是mvn本身就是一个batch file,batch file需要通过调用相互调用,否则控制不会返回给调用者。