gpt4 book ai didi

windows - Windows 批处理文件中的 Scala 脚本

转载 作者:可可西里 更新时间:2023-11-01 12:42:41 25 4
gpt4 key购买 nike

在 Programming in Scala 中,它描述了如何从批处理文件 (link) 运行 Scala 脚本。

对于 Windows

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

我在谷歌搜索 ::#! 时遇到问题。这是什么意思?我知道 :: 表示注释,在 Unix 中 #! 是指向要使用的 shell 的方向,但它到底是什么?还有 ::!#?

%0 %*到底是什么意思,有必要这样表达吗?

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

最佳答案

这是一个噱头,但它确实有效。它旨在复制 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 shell,而是Scala。 :-)

关于windows - Windows 批处理文件中的 Scala 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6671913/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com