2010-09-09 3 views
9

Ich versuche, eine Möglichkeit zum Registrieren der Dateien mit der Erweiterung .pl als ausführbare Dateien zu finden. Ich verbrachte einige Zeit im Internet auf der Suche nach einer Lösung, aber ich konnte nichts finden. Ausführen eines Perl-Skripts in Windows ohne Erweiterung

Was ich tun kann: habe ich ein Skript, nennen wir es myscript.pl
ich es so laufen kann:

perl myscript.pl [my_script_parameters] 

Nun, da die Datei mit Perl zugeordnet ist, kann ich führen sie es auch als:

myscript.pl [my_script_parameters] 

Nun, ich weiß, dass es irgendwo eine Liste der Erweiterungen, die als ausführbare Dateien betrachtet werden (.exe, .bat, etc ...). Ich mag zu.plzu dieser Liste hinzufügen so dass ich so meinen Skript ausführen kann:

myscript [my_script_parameters] 

Wer weiß, wie dies zu tun?

Antwort

13

Ja, es gibt eine eingebaute Unterstützung dafür. Wenn Sie die Hilfe zum Befehl FTYPE überprüfen, sehen Sie ein Perl-Beispiel.

C:> Hilfe ftype

Zeigt oder ändert Dateitypen verwendet in Dateierweiterung Verbände

FTYPE [filetype [= [openCommandString]]]

Dateityp Gibt den Dateityp untersuchen oder ändern openCommandString Gibt den zu verwendenden Befehl open an, wenn Dateien dieses Typs gestartet werden.

Typ FTYPE ohne Parameter zu Anzeige der aktuellen Dateitypen, die offene Befehlszeichenfolgen definiert haben. FTYPE wird nur mit einer Datei vom Typ aufgerufen. Sie zeigt die aktuell geöffnete Befehlskette für diesen Dateityp an. Geben Sie für den offenen Befehl nichts an und der FTYPE-Befehl löscht die offene Befehlskette für den Dateityp . Innerhalb eines geöffneten Befehls wird die Zeichenfolge% 0 oder% 1 durch ersetzt, wobei der Dateiname über die Verknüpfung gestartet wird. % * erhält alle Parameter und% 2 erhält den 1. Parameter,% 3 die zweite, etc.% ~ n erhält alle verbleibenden Parameter beginnend mit dem n-ten Parameter, wobei n zwischen 2 und 9, inklusive sein kann . Zum Beispiel:

ASSOC .pl=PerlScript 
FTYPE PerlScript=perl.exe %1 %* 

Ihnen erlauben würde, ein Perl- Skript aufrufen wie folgt:

script.pl 1 2 3 

Wenn Sie die Notwendigkeit, Typ die Erweiterungen eliminieren wollen, dann tun Sie das folgende:

set PATHEXT=.pl;%PATHEXT% 

und das Skript könnte als follo aufgerufen werden ws:

script 1 2 3 
+0

Welche Version von Microsoft-Betriebssystemen hat diese neue Funktion? –

+0

Es ist seit NT, vielleicht sogar früher. –

+0

Hallo! Danke für deine Antwort. Ich habe es versucht, aber aus irgendeinem Grund hat es den Neustart nicht überlebt. Wahrscheinlich muss ich die richtige Konfigurationsdatei finden, die beim Booten aufgerufen wird. – Pascal

-1

Ihre beste Ansatz wäre, eine Batch-Datei myscript.bat genannt zu schreiben, legen Sie sie in Ihrem Weg, und haben es Ihr Skript ausführen .. z.B.

@echo off 
c:\perl\bin\perl.exe c:\scripts\myscript.pl %* 
+8

Wenn Sie einen Batch-Wrapper für ein Perl-Skript erstellen möchten, verwenden Sie das Dienstprogramm 'pl2bat', das mit Perl geliefert wird. –

+0

Hallo! Danke für deine Antwort. Das Problem, wenn ich diese Methode verwende, ist, dass ich einen Stapel für jedes Skript mache, das ich schreibe ... – Pascal

6

Sie können einfach "; .PL" zur Umgebungsvariablen PATHEXT hinzufügen. Klicken Sie mit der rechten Maustaste auf "Arbeitsplatz"> Eigenschaften> Erweitert> Umgebungsvariablen> Systemvariablen.

+0

Hallo! Danke für deine Antwort! Ja, genau das habe ich gesucht. – Pascal

+0

Ich habe ".pl" und ".PL" zu "PATHEXT" hinzugefügt, aber meine Datei wird immer noch mit einem Editor geöffnet. Ich versuche als 'C: \> newprog.pl' auszuführen –

+0

Haben Sie neu gestartet? Oder haben Sie 'set' ausgeführt, um zu sehen, ob die Variable PATHEXT den neuen Wert in der Konsole hat? – AndiDog