US An english version of this website is available, would you like to check it out ?

YES | NO, stay on the french website


FR Une version anglophone du site est disponible, souhaitez-vous la consulter ?

OUI | NON, rester sur le site français

Close / Fermer

System et Exec

05/06/2007 17:37 par Stéphane Müller | Signaler un contenu abusif
Bonjour,

J'ai le script perl essai.pl suivant:

print "++ system ++";
system @ARGV;
print "++ exec ++";
exec @ARGV;

J'ai le fichier arg.bat suivant:

@echo off
echo 1: %1
echo 2: %2
echo 3: %3

Le résultat de la commande:

C:\Tmp>perl essai.pl arg.bat -p"Mon repertoire" -d

est le suivant:

++ system ++
1: "-pMon repertoire"
2: -d
3:
++ exec ++
C:\Tmp>1: -pMon
2: repertoire
3: -d

Pourquoi les arguments sont-ils correctement interprétés par la
commande system alors que ce n'est pas le cas par exec ?

Merci de votre aide.
Stéphane
email Suivre cette discussionRéponses Lire les 4 réponsesReplies Répondre

Lire les réponses

#1 Paul Gaborit
06/06/2007 10h03 | Contenu abusif
À (at) Tue, 5 Jun 2007 17:37:21 +0200,
"Stéphane Müller"
J'ai le script perl essai.pl suivant:

print "++ system ++\n";
system @ARGV;
print "++ exec ++\n";
exec @ARGV;

J'ai le fichier arg.bat suivant:

@echo off
echo 1: %1
echo 2: %2
echo 3: %3

Le résultat de la commande:

C:\Tmp>perl essai.pl arg.bat -p"Mon repertoire" -d

est le suivant:

++ system ++
1: "-pMon repertoire"
2: -d
3:
++ exec ++
C:\Tmp>1: -pMon
2: repertoire
3: -d

Pourquoi les arguments sont-ils correctement interprétés par la
commande system alors que ce n'est pas le cas par exec ?


Ça ne devrait pas être le cas... En tous cas, sur Unix, tout se passe
comme prévu (arg.bat ne reeçoit que deux arguments à chaque fois).

C'est certainement un effet de bord de la manière dont 'exec' est
simulé par Perl sur Windows.

--
Paul Gaborit - Perl en français -
 

Questions similaires