Windows批处理文件中的Scala脚本

时间:2011-07-12 22:19:52

标签: windows scala scripting batch-file

在Scala编程中,它介绍了如何从批处理文件(link)运行Scala脚本。

适用于Windows

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

我在使用Google ::#!时遇到问题。这是什么意思?我知道::表示注释,在Unix #!中是要使用的shell的方向,但究竟是什么呢?还有::!#

%0 %*究竟是什么意思,是否有必要像这样表达?

是否可以从同一个批处理文件中运行多个脚本?

2 个答案:

答案 0 :(得分:15)

这是一个噱头,但它的确有效。它打算复制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一旦被调用,就会发现文件作为第一个参数传递,检查第一行是::#!,忽略行::!#以外的所有内容所以,然后执行文件的其余部分(::!#之后的行)作为Scala脚本。

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

答案 1 :(得分:2)

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