让 Windows 在双击时使用 Shebang 运行文件?

让 Windows 在双击时使用 Shebang 运行文件?

Explorer 是否有任何 shell 扩展可以执行以#!shebang 开头的文本文件?

答案1

你的观点与微软的文件模型相悖。在 POSIX 模型中,文件名根本不决定文件是否可执行。这完全是权限的问题。在 Windows 资源管理器中使用的微软模型中,文件是否可执行还由其文件姓名,特别是通过扩展。因此,FTYPE命令、ASSOC命令、PATHEXT环境变量等等。

所以,但这仅限于扩展.CMD名为为了符合上述模型,实际上一个扩展,它将以 开头的文件传递给#!该行上指定的脚本解释器。它是JP Software 的 TCC,一个替代的命令解释器,它有并支持#!EXTPROC。可以指示 Explorer 将所有.CMD文件交给 TCC,TCC 随后读取#!并交给指定的脚本解释器。

如果您想#!在资源管理器中使用任何其他文件扩展名,那么您就会遇到范式冲突,并且您必须切换到使用文件扩展名关联,就像 超链接到的文章中 CGI 脚本的人所做的那样new123456。扩展名确定脚本解释器,而不是文件内容中的魔法数字,是 Windows 资源管理器使用的范式。

答案2

如果你的文本文件恰好是 Python 文件,那么你可以使用pylauncher.
来自文档:

PEP 397 兼容的 Windows 下 Python 启动器。请参阅 http://www.python.org/dev/peps/pep-0397/对于 PEP, http://www.red-dove.com/screencasts/launcher/la... 用于截屏直播

相关内容