Lui*_*hys 9 windows scripting scala batch-file
在Scala中的Programming中,它描述了如何从批处理文件(链接)运行Scala脚本.
对于Windows
::#!
@echo off
call scala %0 %*
goto :eof
::!#
Run Code Online (Sandbox Code Playgroud)
我有一个问题谷歌搜索::#!
.这是什么意思?我知道::
表示一个注释,在Unix中#!
是shell的使用方向,但这究竟是什么?而且::!#
?
究竟是什么%0 %*
意思,是否有必要像这样表达?
是否可以从同一批处理文件中运行多个脚本?
Dan*_*ral 15
这是一个噱头,但它的工作原理.它打算复制Unix shell调用特定命令来处理shell文件的能力.所以,这是解释:
::#!
Run Code Online (Sandbox Code Playgroud)
开头的行::
是Windows shell中的注释,所以这只是一个注释.
@echo off
Run Code Online (Sandbox Code Playgroud)
不要显示从这里开始执行的行.在@
一开始确保这条线本身将不会显示.
call scala %0 %*
Run Code Online (Sandbox Code Playgroud)
将执行转移到scala
脚本.这%0
意味着该文件本身的名称(以便scala可以找到它),并且%*
是在其执行中传递的参数.
例如,假设这些行位于一个名为的文件中count.bat
,您可以通过键入来调用它count 1 2 3
.在这种情况下,该行将执行scala count 1 2 3
- 在这种情况下,您将收到错误.您必须通过键入来调用它count.bat
.
goto :eof
Run Code Online (Sandbox Code Playgroud)
完成执行脚本.
::!#
Run Code Online (Sandbox Code Playgroud)
另一条评论线.
所以,这里的诀窍...... Scala,一旦被调用,将发现文件作为第一个参数传递,检查第一行是否::#!
,如果是,则忽略所有行::!#
,然后执行文件的其余部分(行之后::!#
)作为Scala脚本.
换句话说,它不是智能的Windows外壳,而是Scala.:-)
归档时间: |
|
查看次数: |
3918 次 |
最近记录: |