在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表示第一个参数…