2013-04-10 113 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