Windowsbatch file中的Scala脚本

在Scala编程中,它介绍了如何从batch file( 链接 )运行Scala脚本

对于Windows

::#! @echo off call scala %0 %* goto :eof ::!# 

我有一个问题谷歌search::#! 。 这是什么意思? 我知道::表示一个评论,并在Unix #! 是壳的使用方向,但究竟是什么呢? 而::!#

%0 %*是什么意思,是否有必要这样expression?

是否有可能从同一batch file运行多个脚本?

这是一个噱头,但它的作品。 它打算复制Unix shell的能力来调用特定的命令来处理一个shell文件。 所以,这里的解释是:

 ::#! 

::开头的行是Windows shell中的注释,所以这只是一个注释。

 @echo off 

不要显示从这里执行的行。 @开始时确保这行不会显示。

 call scala %0 %* 

将执行转移到scala脚本。 %0表示这个文件本身的名字(以便scala可以找到它), %*是在执行时传递的参数。

例如,说这些行在一个名为count.bat的文件中,并且通过键入count 1 2 3来调用它。 在这种情况下,该行将执行scala count 1 2 3 – 在这种情况下,您将得到一个错误。 你必须通过输入count.bat来调用它。

 goto :eof 

完成执行脚本。

 ::!# 

另一条评论线。

所以,这里的技巧… Scala,一旦被调用,会发现作为第一个参数传递的文件,检查是否第一行是::#! ,如果是这样的话,忽略line ::!#所有内容,然后将其余的文件( ::!#后面的行)作为Scala脚本执行。

换句话说,它不是Windows的智能外壳,而是Scala。 🙂

%0表示程序名(可能是脚本文件名),%*表示命令行参数列表。 %1表示第一个参数…