【发布时间】:2019-08-01 16:27:05
【问题描述】:
我在 jenkins 工作中遇到问题,我隔离到一个命令中。所以我创建了另一个单独的作业来尝试修复它。
所以在这项名为“teste”的工作中,我只有一个命令:
start cmd /k call "C:\Program Files\myDir\myBat.bat"
这会打开一个单独的 cmd 窗口,运行我的 bat 文件,它应该会“永远”运行。
但问题是,当我这样做时,我的 jenkins 工作一直卡在“退出 0”操作中,我不知道它来自哪里。 那是控制台:
[EnvInject] - Loading node environment variables.
Building remotely on Machine01 in workspace C:\workspace\teste
[teste] $ cmd /c call C:\...dir\jenkins.bat
C:\workspace\teste>start cmd /k call "C:\Program Files\myDir\myBat.bat"
C:\workspace\teste>exit 0
然后它一直卡在那个点。
myBat.bat 内容示例:
echo hi
pause
有什么方法可以在另一个窗口中进行此调用而无需等待其完成?
【问题讨论】:
-
试试
start "" cmd /k "C:\Program Files\myDir\myBat.bat"... -
感谢@aschipfl,但没有用..仍然是同样的问题
-
其实我换个方式解释一下。我想在另一个窗口中触发一个 bat 文件(这已经完成),但无论这个其他脚本发生什么,我只想能够完成我当前的控制台(工作)。所以问题是jenkins作业仍然永远运行,我希望它在触发这个“start cmd /k ....”后完成
-
好的@Compo,我添加了一个内容,您可以将其放入 .bat 文件中进行模拟。它的行为方式完全相同。当它暂停时,新的 cmd 永远不会结束,但我的主 cmd 仍然没有退出。如果有人让它与那个脚本一起工作,你救了我的命。
-
@Compo jenkins.bat 的内容正是顶部突出显示的那一行!这行是 jenkins 自己打印的,当它将我的所有脚本放入服务器的单个文件中并执行它时。我的工作脚本只有一行,我已经提供了!开始 cmd /k 调用 "C:\Program Files\myDir\myBat.bat"
标签: batch-file jenkins cmd