galere pour lancer un script perl avec argument sur windows 2003 server
Le
Siddharta

Bonjour à tous,
Je decouvre l'architecture win32 et particulierement 2003 server sur
lequel est installe oracle 10g avec 'perl v5.8.3 built for
MSWin32-x86-multi-thread' .Toute fois je voudrais utiliser certains
scripts faits sur GNU/Linux. J'ai eu beau sous windows taper sous
commande DOS :
ASSOC .pl=PerlScript
puis
FTYPE
PerlScript=c:oracleproduct10.2.0db_1perl5.8.3binMSWin32-x86-multi=
-threadperl.exe
%1 %*
Si je me place dans un repertoire contenant des script perl sous
windows et que lance un script perl tout bete qui ne necessite aucun
argument (genre print "hello world";) via son nom 'hello.pl' pas de
probleme, par contre si je veux lancer un script necessitant un
argument en faisant 'monscript.pl monargument' la je ne recupere pas le
prompt et ca reste bloqué (je dois faire un ctrl-c), la seule facon
que j'ai trouvé pour lancer un script avec argument est de faire :
C:>c:oracleproduct10.2.0db_1perl5.8.3binMSWin32-x86-multi-threadp=
erl.exe
mon script.pl monfichier.log
et je trouve ca assez fastidieux, aussi auriez vous une astuce pour
pouvoir lancer mon script perl avec argument sans avoir a le preceder
du chemin vers perl.exe , par exemple avec un 'shebang' special windows
(j'ai adapté le shebang mon script perl comme suit :
#!c:oracleproduct10.2.0db_1perl5.8.3binMSWin32-x86-multi-threadper=
l.exe
-w
mais ca ne change rien )
Merci pour vos conseils, je vous souhaite une agréable journée.
Je decouvre l'architecture win32 et particulierement 2003 server sur
lequel est installe oracle 10g avec 'perl v5.8.3 built for
MSWin32-x86-multi-thread' .Toute fois je voudrais utiliser certains
scripts faits sur GNU/Linux. J'ai eu beau sous windows taper sous
commande DOS :
ASSOC .pl=PerlScript
puis
FTYPE
PerlScript=c:oracleproduct10.2.0db_1perl5.8.3binMSWin32-x86-multi=
-threadperl.exe
%1 %*
Si je me place dans un repertoire contenant des script perl sous
windows et que lance un script perl tout bete qui ne necessite aucun
argument (genre print "hello world";) via son nom 'hello.pl' pas de
probleme, par contre si je veux lancer un script necessitant un
argument en faisant 'monscript.pl monargument' la je ne recupere pas le
prompt et ca reste bloqué (je dois faire un ctrl-c), la seule facon
que j'ai trouvé pour lancer un script avec argument est de faire :
C:>c:oracleproduct10.2.0db_1perl5.8.3binMSWin32-x86-multi-threadp=
erl.exe
mon script.pl monfichier.log
et je trouve ca assez fastidieux, aussi auriez vous une astuce pour
pouvoir lancer mon script perl avec argument sans avoir a le preceder
du chemin vers perl.exe , par exemple avec un 'shebang' special windows
(j'ai adapté le shebang mon script perl comme suit :
#!c:oracleproduct10.2.0db_1perl5.8.3binMSWin32-x86-multi-threadper=
l.exe
-w
mais ca ne change rien )
Merci pour vos conseils, je vous souhaite une agréable journée.
Les commandes que vous avez utilisées semblent correctes. La seule chose que
je vois, c'est le manque de guillemets au chemin de perl et pour %1.
Essayez :
ASSOC .pl=PerlScript
FTYPE PerlScript="c:oracleproduct10.2.0db_1perl5.8.3binMSWin32-x86-multi-threadperl.exe" "%1" %*
set PATHEXT=%PATHEXT%;.pl
Cette dernière commande permet de lancer un script Perl sans préciser son
extension.
Sinon, il y a deux utilitaires qui permettent de passer par des fichiers
.bat :
* pl2bat
http://www.bribes.org/perl/docfr/pl2bat.html
* runperl
http://www.bribes.org/perl/docfr/runperl.html
Le shebang ne sert pas à grand chose sous Windows :
http://www.bribes.org/perl/docfr/perlwin32faq4.html#LFDEB47B8
HTH
--
J-L.M.
http://www.bribes.org/perl
Je vous remercie pour toutes ces precisions que j'ai suivies bien
evidemment.
P.S. je pense poursuivre mon apprentissage de perl sous GNU/Linux ,
cest nettement moins contraignant.