2016-09-23 68 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

尝试将退出添加到窗口执行的每个脚本的末尾。