Задание Дженкинса застряло после запуска команды

#batch-file #jenkins #cmd

#пакетный файл #дженкинс #cmd

Вопрос:

У меня проблема в моем задании дженкинса, и я выделил его в одну команду. Поэтому я создал другое отдельное задание, чтобы попытаться это исправить.

Итак, в этом задании, называемом «teste», у меня есть только одна команда:

 start cmd /k call "C:Program FilesmyDirmyBat.bat"
  

Откроется отдельное окно cmd, в котором запускается мой bat-файл, который должен продолжать работать «вечно».

Но проблема в том, что когда я это делаю, мое задание дженкинса продолжает зависать в операции «exit 0», и я понятия не имею, откуда оно взялось. Это консоль:

 [EnvInject] - Loading node environment variables.
Building remotely on Machine01 in workspace C:workspaceteste
[teste] $ cmd /c call C:...dirjenkins.bat

C:workspaceteste>start cmd /k call "C:Program FilesmyDirmyBat.bat" 

C:workspaceteste>exit 0 
  

Затем оно продолжает зависать на этом этапе.

Пример содержимого myBat.bat:

 echo hi
pause
  

Есть какой-нибудь способ выполнить этот вызов в другом окне, не дожидаясь его завершения?

Комментарии:

1. Попробуйте start "" cmd /k "C:Program FilesmyDirmyBat.bat"

2. Спасибо @aschipfl, но не сработало .. по-прежнему та же проблема

3. На самом деле, позвольте мне объяснить другими словами. Я хотел бы запустить один bat-файл в другом окне (что уже выполняется), но независимо от того, что произойдет с этим другим скриптом, я просто хотел бы иметь возможность завершить мою текущую консоль (задание). Итак, проблема в том, что задание дженкинса продолжает выполняться вечно, и я бы хотел, чтобы оно завершилось после запуска этого «start cmd / k ….»

4. Хорошо, @Compo, я добавил содержимое, которое вы можете поместить в файл .bat для имитации. Он ведет себя точно так же. Поскольку оно приостановлено, новый cmd никогда не заканчивается, но мой основной cmd по-прежнему не завершается. Если кто-нибудь заставит это работать с этим скриптом, вы спасете мне жизнь.

5. @Compo содержимое этого jenkins.bat — это именно та строка, которая выделена вверху! Эта строка была напечатана самим дженкинсом, когда он помещал весь мой скрипт в один файл на сервере и выполнял его. В скрипте моего задания есть только одна строка, которую я уже предоставил! запустите вызов cmd / k «C:Program FilesmyDir myBat.bat»

Ответ №1:

Я решаю свою проблему, изменяя способ, которым я вызывал свой other .bat, вызывая его через powershell. Но поскольку я был из bat-файла, я использовал команду для отправки команды powershell, вызывающей мой другой bat-файл. Кроме того, я добавил еще одну строку, меняющую jenkins BUILD_ID на поддельный, поэтому это не убивает его.

Итак, я изменил эту строку:

 start cmd /k call "C:Program FilesmyDirmyBat.bat"
  

К этому :

 set BUILD_ID=dontKillMe
powershell -Command "Start-Process 'C:Program FilesmyDirmyBat.bat'"
  

Я надеюсь, что это кому-нибудь когда-нибудь поможет.