題 雙擊時讓Windows運行帶有Shebang的文件?


是否有任何用於執行文本文件的資源管理器的shell擴展 #! shebang一開始?


5
2018-06-23 05:06


起源


您可能會嘗試將文件類型擴展名添加到註冊表中,以便它在運行時執行給定的程序或執行類似的操作 這個。 - new123456
我不這麼認為。註冊表只保留後綴。我用Google搜索,但找不到任何東西。 - KCotreau
嗯...確實 這個 工作? - new123456
你需要更具體......你要創建什麼樣的可執行文件?您是否更改了使“文本文件”可執行的權限?你試圖使用什麼shell(例如#!/ bin / bash)? - chrsblck
@chrsblck但我不記得Windows支持標記“可執行”的東西...... - binki


答案:


您與Microsoft的文件模型非常衝突。在POSIX模型中,文件名根本不指示文件是否可執行。這只是權限的範圍。在Windows資源管理器中使用的Microsoft模型中,文件是否可執行也由其文件決定名稱,特別是通過擴展。因此 FTYPE 命令, ASSOC 命令, PATHEXT 環境變量等等。

所以, 條件是這僅限於帶有文件的文件 .CMD 延期實際上,為了適應上述模型  將傳遞以。開頭的文件的擴展名 #! 到該行上命名的腳本解釋器。它的 JP Software的TCC,一個替換命令解釋器,具有 #! 和 EXTPROC 支持。資源管理器可以告訴所有人 .CMD 文件到TCC,然後將讀取 #! 並交給指定的腳本解釋器。

如果你想使用 #! 在資源管理器中使用任何其他文件擴展名,然後你就會遇到範式衝突,你將不得不切換到使用文件擴展名關聯,就像CGI腳本在超鏈接文章中所做的那樣。 new123456。擴展確定腳本解釋器,而不是文件內容中的幻數,是Windows資源管理器使用的範例。


2
2018-06-23 09:38





如果您的文本文件是由Python文件發生的,那麼您可以完全按照自己的意願使用 pylauncher
來自文檔:

適用於Windows的PEP 397兼容啟動器。看到    http://www.python.org/dev/peps/pep-0397/ 對於PEP,    http://www.red-dove.com/screencasts/launcher/la...用於截屏


0
2017-09-01 19:39



根據他們的文檔,您還可以使用它從shebang啟動任意程序,但需要注意的是它們必須位於系統%PATH%中,因為這是Python搜索應用程序的地方。 - dragon788