运行 TeamCity 9 的一个构建步骤中有两个批处理文件
Running two batch files in one build step of TeamCity 9
我正在使用 TeamCity 9。我想 运行 在一个构建步骤中一个接一个地 运行 两个批处理文件。
如果我在构建步骤中写这个:
BATCH_1.bat <arg1> <arg2>
BATCH_2.bat <arg1> <arg2>
只有 BATCH_1.bat
被执行...我改变了顺序,然后只有 BATCH_2.bat
被执行了。这意味着,只有构建步骤中的第一个批处理文件被执行,控制权移至下一个构建步骤。
当我分开构建步骤时,两个批处理文件都被执行了。但是当我一步带上它们时,只有一个执行。
有趣的是 ECHO
语句在 BATCH_1
之前执行,但不会在它之后执行。
是否有任何限制只能在一个构建步骤中执行一个批处理文件?
使用命令步骤时,TeamCity 的工作方式是将步骤中的所有命令放入单个 .cmd
文件中,并要求命令行解释器执行它。
所以这不是 TeamCity 的限制,而是命令行解释器的限制。
要让解释器 return 返回您的第一个批处理文件(TeamCity 生成的那个),您将必须 调用 其他批处理文件。
试试这个:
CALL BATCH_1.bat <arg1> <arg2>
CALL BATCH_2.bat <arg1> <arg2>
我正在使用 TeamCity 9。我想 运行 在一个构建步骤中一个接一个地 运行 两个批处理文件。
如果我在构建步骤中写这个:
BATCH_1.bat <arg1> <arg2>
BATCH_2.bat <arg1> <arg2>
只有 BATCH_1.bat
被执行...我改变了顺序,然后只有 BATCH_2.bat
被执行了。这意味着,只有构建步骤中的第一个批处理文件被执行,控制权移至下一个构建步骤。
当我分开构建步骤时,两个批处理文件都被执行了。但是当我一步带上它们时,只有一个执行。
有趣的是 ECHO
语句在 BATCH_1
之前执行,但不会在它之后执行。
是否有任何限制只能在一个构建步骤中执行一个批处理文件?
使用命令步骤时,TeamCity 的工作方式是将步骤中的所有命令放入单个 .cmd
文件中,并要求命令行解释器执行它。
所以这不是 TeamCity 的限制,而是命令行解释器的限制。
要让解释器 return 返回您的第一个批处理文件(TeamCity 生成的那个),您将必须 调用 其他批处理文件。
试试这个:
CALL BATCH_1.bat <arg1> <arg2>
CALL BATCH_2.bat <arg1> <arg2>