我正在通过命令行构建Visual Studio项目,因为我需要一次运行多个命令,所以我创建了一个包含所有命令的批处理文件。当我运行批处理文件时,仅执行第一个命令。批处理文件如下所示
test.bat
C:
cd C:\Program Files (x86)\Microsoft Visual
Studio\2017\Community\VC\Auxiliary\Build
vcvarsall.bat x86_amd64
devenv D:\Jenkins\cpputest-master\cpputest-master\CppUTest.sln /Build
D:
cd D:\Jenkins\cpputest-master\cpputest-master\cpputest_build
mv AllTests.exe D:\Jenkins\jenkinsHome\workspace\TestCppUTest
cd D:\Jenkins\jenkinsHome\workspace\TestCppUTest
AllTests.exe -ojunit
运行此批处理文件时,前三个命令没有执行,但是第四个命令没有执行。但是,如果我使用&&运行这些命令,则所有命令都将执行。有什么建议吗?
答案 0 :(得分:1)
如果从批处理文件中调用批处理文件,则需要使用struct CastExC: protected CastExB, public CastExA<int> {
virtual int h() override { return CastExB::h(); }
};
,否则将终止正在调用的批处理文件。
所以不是
vcvarsall.bat x86_amd64
您需要使用:
call vcvarsall.bat x86_amd64
如果call
也是一个批处理文件,则也需要将其替换为devenv
。