我在尝试编写Windows cmd脚本来执行系列中的多个任务。 但是,它始终在脚本中的第一个命令后停止。从Windows cmd脚本执行多个命令
它停止后的命令是一个maven版本(不知道这是否相关)。
请问我该如何让它继续进行并依次运行每个任务?
安装任何软件或配置注册表等都完全没有问题 - 它必须工作在香草Windows XP安装恐怕。
理想情况下,如果任何命令失败,我希望脚本中止,但这是一个“很好有”,不是必需的。
谢谢。
我在尝试编写Windows cmd脚本来执行系列中的多个任务。 但是,它始终在脚本中的第一个命令后停止。从Windows cmd脚本执行多个命令
它停止后的命令是一个maven版本(不知道这是否相关)。
请问我该如何让它继续进行并依次运行每个任务?
安装任何软件或配置注册表等都完全没有问题 - 它必须工作在香草Windows XP安装恐怕。
理想情况下,如果任何命令失败,我希望脚本中止,但这是一个“很好有”,不是必需的。
谢谢。
当你调用另一个.bat文件,我想你需要“调用”在通话的面前:
call otherCommand.bat
我不知道直接回答你的问题,但如果你做了很多这些脚本中,可能值得学习像perl这样更强大的语言。 Windows的免费实现(例如,activestate,cygwin)。我发现这对我自己的任务来说是值得的。
编辑:
至于建议的@Ferruccio,如果您不能安装额外的软件,可以考虑VBScript和/或JavaScript。它们内置于Windows脚本主机中。
只有当第一个命令成功时,才可以使用命令之间的符号执行第二个命令。更多信息http://commandwindows.com/command1.htm
不知道为什么第一个命令停止。 如果你可以把它平行的,你可以,如果你在Windows上运行,你可以使用下面的命令尝试像
start cmd.exe /C 1.bat
start cmd.exe /C 2.bat
。
驱动器:
cd "Script location"
schtasks /run /tn "TASK1"
schtasks /run /tn "TASK2"
schtasks /run /tn "TASK3"
exit
我刚才一直在做完全一样的(英语)创建一个批处理脚本运行Maven的测试脚本的任务。问题是用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
注意而使用的调用。这将允许在批处理文件中使用连续的maven脚本。
请注意,您不需要批处理文件中的分号。而你需要使用call的原因是mvn本身就是一个批处理文件,批处理文件需要通过调用互相调用,否则控制权不会返回给调用者。
使用双&符号将运行第二个命令,只有当第一个成功:
cd Desktop/project-directory && atom .
凡为,只用一个符号都将尝试运行这两个命令,即使第一个失败:
cd Desktop/project-directory & atom .
嗨,在原来的脚本中,我没有调用其他.cmd文件,但我已经将它分成单独的文件,所以我可以依次运行。因此,在每个命令前面打电话似乎已经完成了这个技巧,谢谢! – 2008-10-13 15:48:44
调用git diff命令时,这也适用于我 – Bronumski 2011-12-01 11:02:14
事实上,在Windows上,`mvn`本身就是一个.bat文件,因此您需要使用`call`作为`call mvn install` ;通常你不需要创建一个额外的cmd文件。 – jfpoilpret 2012-09-13 08:17:17