2016-09-23 69 views
0

我試圖安排腳本在Windows上運行。觸發部分工作正常。我的腳本的重要組成部分,是這樣的: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" 

當我從CMD.EXE,兩個CMD窗口被打開運行,無論是執行腳本,然後窗口不關閉。當我嘗試爲此使用Windows調度程序時,它失敗,因爲「資源仍在使用」

此外,ECHO發生在原始窗口中(這是它們應該發生的地方),但是立即發生,而不是開始任務完成。

+0

因爲劇本中的某些東西,windows可能不會關閉?暫停?你能告訴我們腳本嗎?和「在父窗口啓動後啓動的回顯後處理」似乎是一個失敗的原因。 –

+0

該命令似乎退出。新的cmd窗口顯示'C:\>'並且該提示符起作用。 – marisbest2

+0

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

回答

1

start創建一個獨立的過程。一旦該過程開始,消息就會生成並執行下一行。

如果你希望兩個start編輯過程並行執行,你就只能通過這些進程窗口打擾不關閉,插入

exit 
在腳本

start

如果您想要連續執行這些進程,即在生成消息並啓動process2之前完成process1,然後CALL的批次,而不是start他們。

+0

我不能修改腳本。有沒有一種好的方法來創建多行內聯腳本?像我可以做 '開始(MYSCRIPT&出口)'或類似的東西? – marisbest2

+0

如何開始一個2行腳本:'調用C:\ staging-script -arg1 arg -arg2 arg'/'exit'。請記住,兩個'start'ed腳本將並行執行,所以如果一個人使用另一個需要的資源,那麼他們將互相干擾,因此您需要確保第二個腳本在第一個腳本之前不會啓動完成後,可以選擇將「開始」更改爲「調用」 – Magoo

+0

這可以內聯完成嗎?或者它需要是不同的文件嗎? – marisbest2

0

嘗試將退出添加到窗口執行的每個腳本的末尾。