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 agrable journe.
  • Partager ce contenu :
Vos réponses
Trier par : date / pertinence
jl_morel
Le #124585
Dans l'article dit...


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 worldn";) 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




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


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



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

Siddharta
Le #124447

Dans l'article dit...


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 worldn";) 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-threa dp=
erl.exe
mon script.pl monfichier.log




Les commandes que vous avez utilisées semblent correctes. La seule chos e 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


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-thread per=
l.exe
-w



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.


Poster une réponse
Anonyme