39 votes

Comment faire pour que mes scripts Perl se comportent comme des programmes normaux sous Windows ?

Je veux que mes scripts Perl se comportent comme n'importe quel autre exécutable (fichier *.exe).

  • Lorsque je double-clique sur myscript.pl Je veux qu'il s'exécute au lieu de s'ouvrir dans un éditeur de texte.
  • Je veux courir myscript.pl au lieu de perl myscript.pl .
  • Je veux vraiment courir myscript au lieu de myscript.pl .
  • Je veux courir program | myscript au lieu de program | perl myscript.pl .
  • Je veux pouvoir exécuter mon script par glisser-déposer.

Il y a un certain nombre de changements que vous devez faire sur Windows pour faire toutes ces choses. ces choses fonctionnent. Les utilisateurs tombent généralement sur des choses qui Ne le fais pas. travail un par à la fois, ce qui les laisse perplexes quant à savoir s'ils ont fait une erreur, s'il y a un bug dans Perl, un bogue dans Windows, ou si le comportement qu'ils souhaitent n'est tout simplement pas possible. Cette question a pour but de fournir un point de référence unique pour que tout fonctionne dès le départ. tout fonctionne dès le départ, idéalement avant même que ces problèmes ne surviennent.

Questions connexes :

0voto

Some Guy Points 157

Comme d'autres, j'avais défini 'assoc' et 'ftype', mais aussi l'éditeur de texte Notepad via l'interface graphique, et lorsque j'ai essayé d'exécuter un script via la ligne de commande, Windows a invoqué Notepad pour éditer le script au lieu d'exécuter mon script.

L'utilisation de l'interface graphique pour faire plutôt pointer l'association de fichiers .pl vers l'exécutable script en cours d'exécution n'était pas une grande amélioration, puisqu'elle invoquait l'exécutable sur mon script, mais ne passait aucun argument de ligne de commande (même lorsque j'invoquais mon script depuis la ligne de commande).

J'ai enfin trouvé le salut aquí qui m'a conseillé de supprimer certaines clés de registre.

Citation clé : "Le problème est que si vous avez déjà associé le programme à l'extension via la boîte de dialogue Ouvrir avec, alors vous aurez créé une association d'application, au lieu d'une association d'extension de fichier, entre les deux. Et les associations d'applications sont prioritaires."

Dans mon cas, en suivant les instructions pour utiliser RegEdit afin de supprimer

HKEY_CLASSES_ROOT : Applications : perl.exe

où perl.exe est le nom de mon exécutable Perl, et puis également la suppression :

HKEY_CLASSES_ROOT \.pl

a semblé résoudre mon problème, et ensuite (après avoir réexécuté les commandes 'assoc' et 'ftype' comme indiqué dans d'autres réponses) j'ai pu exécuter des scripts à partir de cmd.exe et leur permettre d'accéder à leurs paramètres de ligne de commande.

Quelques autres informations connexes aquí .

0voto

user1812989 Points 11

Microsoft, dans son infinie sagesse, a décidé de faire en sorte que la commande set utilise un "=" mais la commande setx se plaint si vous utilisez le "=" ! Merci MS ! :-(

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X