Machen Sie Windows eine Datei mit einem Shebang auf Doppelklick ausführen?

6

Gibt es eine Shell-Erweiterung für den Explorer, die #!am Anfang Textdateien mit einem Shebang ausführt ?

Mehrdad
quelle
Sie könnten versuchen , die Dateierweiterung in der Registrierung hinzufügen , so dass es das gegebene Programm auf Lauf oder etwas zu tun , wie führt dies .
new123456
2
Ich glaube nicht Die Registrierung enthält nur Suffixe. Ich googelte herum, konnte aber nichts finden.
KCotreau
Hmm ... funktioniert das ?
new123456
Sie müssen genauer sein ... Welche Art von ausführbarer Datei möchten Sie erstellen? Haben Sie die Berechtigungen geändert, um Ihre "Textdatei" ausführbar zu machen? Welche Shell möchten Sie verwenden (z. B. #! / Bin / bash)?
chrsblck
@chrsblck Aber ich erinnere mich nicht, dass Windows das Markieren von Dingen als "ausführbar" unterstützt…
binki

Antworten:

2

Sie stehen in großem Konflikt mit dem Microsoft-Modell für Dateien. Im POSIX-Modell bestimmt der Dateiname nicht, ob eine Datei überhaupt ausführbar ist. Das ist nur die Provinz der Berechtigungen. Im Microsoft - Modell in Windows Explorer verwendet, ob eine Datei ausführbar ist , wird auch durch seine Datei bestimmt Namen , insbesondere durch die Erweiterung. Daher der FTYPEBefehl, der ASSOCBefehl, die PATHEXTUmgebungsvariable und so weiter.

Unter der Voraussetzung, dass dies auf Dateien mit der .CMDErweiterung beschränkt ist , gibt es eine Erweiterung, die Dateien beginnend mit #!an den in dieser Zeile genannten Skript-Interpreter weitergibt , damit sie in das oben genannte Modell passen . Es ist das TCC von JP Software , ein Ersatzbefehlsinterpreter, der beides #!und EXTPROCUnterstützung bietet . Der Explorer kann angewiesen werden, alle .CMDDateien an TCC weiterzugeben, die diese wiederum lesen #!und an den angegebenen Skriptinterpreter weitergeben.

Wenn Sie #!mit anderen Dateierweiterungen im Explorer arbeiten möchten, stoßen Sie auf den Paradigmenkonflikt und müssen auf die Verwendung von Dateierweiterungszuordnungen umstellen, genau wie die Person mit dem CGI-Skript im Artikel, auf den per Hyperlink verwiesen wurde new123456. Das Paradigma, das Windows Explorer verwendet, bestimmt den Skriptinterpreter für die Erweiterung und nicht die magischen Zahlen im Dateiinhalt.

JdeBP
quelle
0

Wenn Ihre Textdatei von einer Python-Datei stammt, können Sie mit dem Pylauncher genau das tun, was Sie wollen .
Aus den Dokumenten:

PEP 397-kompatibler Launcher für Python unter Windows. Siehe http://www.python.org/dev/peps/pep-0397/ für PEP, http://www.red-dove.com/screencasts/launcher/la ... für Screencast

Piotr Dobrogost
quelle
1
Gemäß ihrer Dokumentation können Sie damit auch beliebige Programme aus dem shebang heraus starten, mit der Einschränkung, dass sie sich im System% PATH% befinden müssen, da Python dort nach der Anwendung sucht.
Dragon788