Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

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

2 réponses
Avatar
Siddharta
Bonjour =E0 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=3DPerlScript

puis

FTYPE
PerlScript=3Dc:\oracle\product\10.2.0\db_1\perl\5.8.3\bin\MSWin32-x86-multi=
-thread\perl.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\n";) 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=E9 (je dois faire un ctrl-c), la seule facon
que j'ai trouv=E9 pour lancer un script avec argument est de faire :

C:\>c:\oracle\product\10.2.0\db_1\perl\5.8.3\bin\MSWin32-x86-multi-thread\p=
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=E9 le shebang mon script perl comme suit :
#!c:\oracle\product\10.2.0\db_1\perl\5.8.3\bin\MSWin32-x86-multi-thread\per=
l=2Eexe
-w

mais ca ne change rien )

Merci pour vos conseils, je vous souhaite une agr=E9able journ=E9e.

2 réponses

Avatar
jl_morel
Dans l'article , a
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

Avatar
Siddharta

Dans l'article , mi a
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.