我正在尝试让我commit-build.bat执行其他.BAT文件作为构建过程的一部分.
内容commit-build.bat:
"msbuild.bat"
"unit-tests.bat"
"deploy.bat"
Run Code Online (Sandbox Code Playgroud)
这看起来很简单,但commit-build.bat只执行list(msbuild.bat)中的第一项.
我已经分别运行每个文件没有问题.
我理解如何使用该call命令从父文件中调用嵌套批处理文件,因为有大量资源:
但是,我不明白为什么从另一个批处理文件调用终止父代.
对于一个不那么抽象的例子,假设我有一个批处理文件,它将单独的批处理文件"链接"在一起,而我错误地没有call在每行前面添加:
foo.bat
bar.bat
Run Code Online (Sandbox Code Playgroud)
这只会执行foo.bat然后退出.要正确执行这两个命令,我必须在每个语句之前添加前调用:
call foo.bat
call bar.bat
Run Code Online (Sandbox Code Playgroud)
为什么第一个功能仍然存在?为什么没有改变?我注意到call这是在20世纪80年代后期发布的MS-DOS 3.3中引入的,所以这个功能仍然在这里用于反向兼容吗?
我无法想到它的任何(实际)用法,但也许我已经习惯了"新的"编程技术.
我有以下蝙蝠脚本:
@echo off
set JAVA_HOME=C:\Program Files\Java\jdk1.6.0_32
set JRE_HOME=C:\Program Files\Java\jdk1.6.0_32\jre
set Path=%JAVA_HOME%\bin;%Path%
cd C:\project
mvn validate compile package db-migration:migrate -DskipTests
REM script exits here, the second line never been executed
java -jar target/compiled_tar.jar
Run Code Online (Sandbox Code Playgroud)
最后一行从未执行过."mvn ..."成功完成,created_tar.jar创建,输出为:
[INFO] BUILD SUCCESS
Run Code Online (Sandbox Code Playgroud)
如果我在最后一行和上一行之间插入PAUSE命令,PAUSE也从未发生过.为什么?
我对Amazon Cloud Auto Scaling(以及所有AWS)都很陌生.
我目前正在尝试编写一个自动创建启动配置然后自动缩放器的.bat脚本.目的是为了一个大约一周前由同事建立的图像.
我遇到的问题是,当我运行脚本时,不执行任何超过启动配置命令的命令.
代码在这里:
echo Beginning Auto Scale Up Process
REM Create a launch config
as-create-launch-config --image-id ami-xxxxxxx --instance-type t1.micro --user-data "Created by Launch Config reportingServerScaleUp-lc" --launch-config reportingServerScaleUp-lc
echo Timer Complete
Run Code Online (Sandbox Code Playgroud)
我正在寻找帮助我调试此问题的建议.或者如何解决它的建议.在"echo Timer Complete"之后,我有一个命令来创建一个自动缩放器.但是,甚至没有执行"echo Timer Complete".控制台确实返回,表明虽然创建了启动配置:)
此外,当我按顺序将每个命令输入命令行时,每个命令都完美地执行.与自动缩放组一样创建启动配置.
当我将下面的行复制/粘贴到cmd窗口时,它会毫无问题地执行.
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat"
msbuild proj\projsln /p:Configuration=Debug
proj\proj\bin\Debug\proj.exe my args
Run Code Online (Sandbox Code Playgroud)
但是,当我将其保存为DoStuff.bat时,我得到下面的消息(这是执行vcvars32.bat的文本),然后没有别的.它不构建我的项目,显然不运行新构建的可执行文件.
为什么不呢,我如何让它运行所有三个命令?
>"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat"
Setting environment for using Microsoft Visual Studio 2010 x86 tools.
Run Code Online (Sandbox Code Playgroud)