【发布时间】:2017-08-06 16:45:37
【问题描述】:
我使用“执行 Windows 批处理命令”选项在 Jenkins 中运行一堆 Windows 命令作为构建步骤。但是,在执行某些命令后构建停止,忽略其余命令,并显示“Finished: SUCCESS”。这是我的“执行 Windows 批处理命令”的样子:
xcopy source\dir dest\dir
7z x file_name.zip
cd extracted_dir_name
rmdir /s /q stale_output
command_to_be_run
another_command_to_be_run
post_processing_
copy_and_zip_commands_
Jenkins 一直执行到another_command_to_be_run,然后就像在那之后没有其他命令一样停止,并说“完成:成功”。
为什么会这样?如何执行后处理命令?
PS:command_to_be_run 和 another_command_to_be_run 需要几秒钟以上的时间,但我不知道这是否重要。
编辑:
我后来尝试用REM 注释掉another_command_to_be_run,然后所有其他后处理命令都运行良好。好奇怪!希望这能敲响任何警钟。提前谢谢..!!!
【问题讨论】:
-
很可能,您正在运行的命令之一是 .bat 或 .cmd 文件。请务必在调用其中一个之前使用“call”关键字,否则您的脚本将在此之后停止。
-
@BradBales 是的,我认为这可能是问题所在。其中之一是 bat 文件。让我试试你的解决方案。
-
@BradBales 谢谢,它成功了!!然而,这只是一个小故障:
call batch_file.bat之后的命令现在运行时不会在控制台上显示该命令。你知道如何解决这个问题吗? -
不客气!我之前在 windows 下与 Jenkins/Hudson 斗争过......祝你好运!
-
很可能正在调用的批处理文件正在设置“回声关闭”。执行该批处理文件后,您可能需要执行“@echo on”...
标签: windows batch-file jenkins cmd