2017-04-21 132 views
2

私はJenkinsを使用しています。2.46.1 ビルドパイプラインプラグインがインストールされていて、そこにWindowsバッチファイルを実行します。バッチファイルは、新しいコマンドウィンドウで実行する必要があり、jenkinsコンソール出力では実行しないでください。私はジェンキンスパイプライン以下のGroovyスクリプトを与える:それはすでに開いてステージであれば、私はそれが新しいコマンドウィンドウを開いて、実行する必要がありを展開プロセスを殺したい、のinit段階でJenkinsでWIndowsのbatファイルを実行する

node { 
    stage 'Init' 
    bat ''' 
     call C:\\myprj\\mybat.bat stop 
     EXIT /B 0 
    ''' 
    stage 'Deploy' 
    bat '''call C:\\myprj\\mybat.bat''' 
} 

を私バッチファイル。 問題は上記が機能しないことです。ビルドは成功ですが、コマンドウィンドウは表示されません。 Plsはあなたがこれは新しいコマンド・ウィンドウ(CMD.EXE)を起動し、指定したバッチファイルを実行します

bat 'start cmd.exe /c C:\\myprj\\mybat.bat' 

を実行することができるはず求めているものを行うために、技術的に

+0

この回答を参照してください。 https://stackoverflow.com/questions/10228327/running-bat-files-in-jenkins/48750441#48750441 –

答えて

2

を示唆しています。あなたのJenkinsスレーブがどのように動作しているかによって、何も見えないかもしれません。 (たとえば、Windowsサービスまたは別のユーザーとして実行されている場合、何も表示されません)

+0

JenkinsはWindowsサービスとして実行されています。この場合、新しいコマンドウィンドウを開くことはできませんか? – user5917011

+0

新しいコマンドウィンドウで開くのは、バッチファイルがサーバーを実行するためです。サーバが動作している間はコマンドウィンドウは開いたままです。だから、ビルドはいつも「実行中」と表示され、完了したことはありません。 – user5917011

+0

簡単な方法はわかりませんが、それはWindowsサービスの設計の一部です。あなたは、ループで無期限にバットプロセスを掛けることができるかもしれません。もちろん、これはビルドノードを結びつけます。あなたが実際に何かを一緒にハッキングしたい場合は、イベントログのイベントによってトリガされるスケジュールされたタスクを持つことができますし、batファイル/サービスでそのイベントを作成させます。 –

関連する問題