Perl | Commande DOS
MrCanard
Messages postés
22
Statut
Membre
-
MrCanard Messages postés 22 Statut Membre -
MrCanard Messages postés 22 Statut Membre -
Bonjour,
Je voulais savoir comment on intégrait une commande DOS dans un script PERL, car j'ai testé ça :
#!/usr/bin/perl -w
use strict;
my $rep = "";
system $rep;
print $rep;
et même :
#!/usr/bin/perl -w
use strict;
my $rep=`dir`;
print "Repertoire courant: ".$rep."\n";
et encore :
#!/usr/bin/perl -w
use strict;
$rep = system("dir");
print "Repertoire courant: ".$rep."\n";
et il me renvoi toujours cette magnifique erreur :
Can't spawn "cmd.exe": No such file or directory at C:\Documents and Settings\[...]\new.pl
Je voulais savoir comment on intégrait une commande DOS dans un script PERL, car j'ai testé ça :
#!/usr/bin/perl -w
use strict;
my $rep = "";
system $rep;
print $rep;
et même :
#!/usr/bin/perl -w
use strict;
my $rep=`dir`;
print "Repertoire courant: ".$rep."\n";
et encore :
#!/usr/bin/perl -w
use strict;
$rep = system("dir");
print "Repertoire courant: ".$rep."\n";
et il me renvoi toujours cette magnifique erreur :
Can't spawn "cmd.exe": No such file or directory at C:\Documents and Settings\[...]\new.pl
Configuration: Windows XP Firefox 3.0.1
A voir également:
- Perl | Commande DOS
- Invite de commande - Guide
- Commande sfc scannow - Guide
- Invite de commande mac - Guide
- Commande winget upgrade - Guide
- Commande dos copy répertoire et sous répertoire ✓ - Forum Windows
5 réponses
Merci il y avait juste une petite erreur :
#!/usr/bin/perl -w
use strict;
my @args = ("C:\\WINDOWS\\SYSTEM32\\cmd.exe", " /c dir ");
system(@args);
print "Repertoire courant : ".@args;
et là ca marche par contre juste une dernière question :
il m'affiche donc ce qu'un dir affiche et dans mon print, il me met comme résultat :
Repertoire courant : 2
soit @args = 2, pourquoi ???
Merci de ton aide dubcek ;)
MrCanard
#!/usr/bin/perl -w
use strict;
my @args = ("C:\\WINDOWS\\SYSTEM32\\cmd.exe", " /c dir ");
system(@args);
print "Repertoire courant : ".@args;
et là ca marche par contre juste une dernière question :
il m'affiche donc ce qu'un dir affiche et dans mon print, il me met comme résultat :
Repertoire courant : 2
soit @args = 2, pourquoi ???
Merci de ton aide dubcek ;)
MrCanard
Et est ce que tu saurais comment faire pour ouvrir un dossier grâce à ça, je m'explique :
opendir DIR, my @args2 = ("C:\\WINDOWS\\SYSTEM32\\cmd.exe", " /c cd ");
print "Voici la liste :\n";
while ($filename = readdir(DIR)) {
if ($filename =~ m/.sch$/) {
print "\t".$filename."\n";
}
}
closedir DIR;
Faire un truc comme ça quoi, bon c'est plus dir mais cd pour pouvoir obtenir le repertoire courant, mais il me dit là :
" readdir() attempted on invalid dirhandle DIR "
opendir DIR, my @args2 = ("C:\\WINDOWS\\SYSTEM32\\cmd.exe", " /c cd ");
print "Voici la liste :\n";
while ($filename = readdir(DIR)) {
if ($filename =~ m/.sch$/) {
print "\t".$filename."\n";
}
}
closedir DIR;
Faire un truc comme ça quoi, bon c'est plus dir mais cd pour pouvoir obtenir le repertoire courant, mais il me dit là :
" readdir() attempted on invalid dirhandle DIR "
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Avec :
#!/usr/bin/perl -w
use strict;
my $rep = system("C:/WINDOWS/SYSTEM32/cmd.exe /c dir");
print "Repertoire courant : ".$rep;
J'obtiens une nouvelle erreur ^^ mais qui m'a l'air moins grave :
"La syntaxe de la commande est incorrecte."
Parce que quand je mets des "\" ça me mets : "Unrecognized escape \W passed through" et pareil pour "\S"
#!/usr/bin/perl -w
use strict;
my $rep = system("C:/WINDOWS/SYSTEM32/cmd.exe /c dir");
print "Repertoire courant : ".$rep;
J'obtiens une nouvelle erreur ^^ mais qui m'a l'air moins grave :
"La syntaxe de la commande est incorrecte."
Parce que quand je mets des "\" ça me mets : "Unrecognized escape \W passed through" et pareil pour "\S"