2016-09-23 5 views
0

Windowsで実行するスクリプトのスケジュールを設定しようとしています。トリガ部分は正常に動作します。私のスクリプトの重要な部分は、以下のようになります。私はCMD.EXEからそれを実行すると完了時にWindowsのバッチ開始コマンドとECHOを実行し、cmdのウィンドウを閉じます。

start C:\staging-script -arg1 arg -arg2 arg & ECHO "Did staging" 
start C:\prod-script -arg1 arg -arg2 arg & ECHO "Did prod" 

、さらに2つのCMDウィンドウが開かれ、両方のスクリプトを実行した後、窓が閉じていないされています。このためにWindowsスケジューラを使用しようとすると、「リソースはまだ使用中」のため失敗します。

さらに、ECHOは元のウィンドウ(発生する場所)で発生しますが、直ちに発生します。開始タスクが完了します。

+0

スクリプト内の何かのためにウィンドウが閉じないのでしょうか?一時停止?スクリプトを見せることはできますか? 「親ウィンドウで開始されたプロセスの後のエコー」が失われているようです。 –

+0

コマンドが終了したようです。新しいcmdウィンドウには 'C:\>'と表示され、そのプロンプトが機能します。 – marisbest2

+0

'start" "cmd/C your-script -args'? – aschipfl

答えて

1

startは、独立したプロセスを作成します。プロセスが開始されると、メッセージが生成され、次の行が実行されます。

を使用すると、2つのstart EDプロセスを並列に実行したい場合は、あなたがプロセスのみ窓に悩まさしているあなたならばスクリプトで

exit 

を挿入し、start

を閉じていませんプロセスを連続して実行したい、つまりメッセージを生成してprocess2を開始する前に完了したprocess1であり、次にのバッチはstartではありません。

+0

スクリプトを修正できません。インラインで複数行のスクリプトを作成する良い方法はありますか?私は 'start(MYSCRIPT&exit)'のようにすることができますか? – marisbest2

+0

2行のスクリプトを起動するのはどうでしょうか? 'C:\ staging-script -arg1 arg -arg2 arg'/'exit'を呼び出します。 2つの 'start'スクリプトが並行して実行されることを覚えておいてください。他のものが必要とするリソースを使用している場合、それらは相互に干渉しますので、最初のスクリプトが始まる前に開始しないようにする必要があります。 "開始"を "呼び出し"に変更する選択をする – Magoo

+0

インラインで行うことができますか、それとも別のファイルである必要がありますか? – marisbest2

0

Windowsが実行する各スクリプトの最後にexitを追加してみます。

関連する問題