2013-04-10 81 views
2

我想编写一个windows批处理文件,它首先编译一个scala脚本,然后运行它。windows批处理文件编译和运行scala脚本

不知何故,当我运行.bat文件时,它只会执行第一个命令,而不是第二个。它只会编译脚本而不运行它。

如果我自己执行.bat文件的两个命令,它的工作原理。

我在做什么错了?

内容v.scala的:run.bat中的

object v extends App { 
println("hello") 
} 

内容:

scalac v.scala 
scala v 

感谢

+1

尝试'阶-cp。 v' – pedrofurla 2013-04-10 19:18:59

+0

@pedrofurla:你的oneliner只有在编译已经发生后才有帮助。 – nemoo 2013-04-11 08:21:13

回答

2

scalac一个批处理文件?如果是,则尝试使用call scalac代替。

如果你从另一个调用批处理文件,第一个将执行第二个相继退出,除非它被称为与“呼”。

下面是一个例子:

Foo1.bat

foo2.bat 
echo foo1 

Foo2.bat

echo foo2 

看来,如果你运行Foo1.bat喜欢,它会吐出“foo1”和“foo2”,但它不包括:

C:\temp>foo1 

C:\temp>foo2.bat 

C:\temp>echo foo2 
foo2 

要改变行为,Foo1.bat应该是这样的:

foo1.bat

call foo2.bat 
    echo foo1