繁体   English   中英

从Windows cmd脚本执行多个命令

[英]Executing multiple commands from a Windows cmd script

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

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

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

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

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

谢谢。

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

call otherCommand.bat

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

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

start cmd.exe /C 1.bat      
start cmd.exe /C 2.bat

我刚刚完成了创建批处理脚本以运行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

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

使用双&符号将运行第二个命令,仅当第一个命令成功时:

cd Desktop/project-directory && atom .

其中,只使用一个&符号将尝试运行这两个命令,即使第一个失败:

cd Desktop/project-directory & atom .

我不知道你的问题的直接答案,但如果你做了很多这些脚本,那么学习像perl这样更强大的语言可能是值得的。 Windows存在免费实现(例如activestate,cygwin)。 我发现值得为自己的任务做最初的努力。

编辑:

正如@Ferruccio所建议的,如果您无法安装额外的软件,请考虑使用vbscript和/或javascript。 它们内置于Windows脚本主机中。

如果您在Windows中运行,则可以使用以下命令。

驾驶:

cd "Script location"
schtasks /run /tn "TASK1"
schtasks /run /tn "TASK2"
schtasks /run /tn "TASK3"
exit

请注意,批处理文件中不需要分号。 你需要使用调用的原因是mvn本身是一个批处理文件,批处理文件需要通过调用相互调用,否则控制不会返回给调用者。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM