windows - 在 Windows 命令提示中,unix使用 shebang/hashbang

  显示原文与译文双语对照的内容
105 0

我目前正在使用服务脚本在 Windows 7上提供带有 node.js 插件的目录。 我已经把 MSYS 放到中了,因为我已经把 node.exe 和服务器脚本放在了 ~/bin ( 在我的道路上) 中,而且输入的只是"服务器"。

但是,Windows 命令提示似乎不支持没有 *.bat 或者 *.exe 扩展的普通文件,也不支持shebang指令。 是否有任何注册表项或者它的他黑名单可以强制这种行为出现在 cmd.exe 中?

我知道我可以编写一个简单的批处理文件来运行 node,但是我不知道是否可以在fasion中编写脚本。

我想我可以为所有的'找不到文件'等等 编写一个默认的处理程序,我可以在 sh -c 中自动执行。

谢谢。

时间: 原作者:

139 1

是,使用 PATHEXT 环境变量是可能的。 比如 还用于 register .vbs 或者 .wsh 脚本,以运行"直接"。

首先需要扩展 PATHEXT 变量以包含服务器脚本的扩展( 在下面我假设扩展是. foo,因为我不知道 Node.js ) 。

默认值如下所示:


PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC



你需要将它的更改为( 通过 控制面板 ),以如下所示:


PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC;.FOO



使用 控制面板 ( 控制面板 -> 系统-> 高级系统设置-> 环境变量 是保持PATHEXT变量的值必需的。

然后,你需要使用命令 FTYPEASSOC,使用该扩展名对正确的"解释程序"进行 register:


ASSOC. foo=FooScript


FTYPE FooScript=foorunner.exe %1 %*



( 上面的例子是shamelessly从 ftype/? 提供的帮助中获取的。)

ASSOC和FTYPE将直接写入注册表,因此你需要一个管理帐户来运行它们。

原作者:
63 2

实际上看起来像是一个知道如何写批处理文件的人比我更接近这个。 他们的批处理文件可能工作得更好。

http://whitescreen.nicolaas.net/programming/windows-shebangs

原作者:
...