bonjour,
Je suis tout nouveau dans le monde de la programmation. Je dois réaliser un programme qui va llire un repertoire contenant des fichiers, créer un dossier à partir du nom de chaque fichiers contenus dans le répertoire, puis déplacer le fichier dans le dossier correspondant avant d'effectuer sur ce fichier un script perl (en l'occurence make_raw_envi.pl nom du fichier)
Le problème est qu'il n'effectue qu'une seule boucle et il ne la termine même pas. Il exécute bien le fichier perl (make_raw_envi.pl) mais après il s'arrête.
Quelqu'un aurait-il une solution ?????
voici le code :
opendir ( REP , $ARGV[0] ) || die "Erreur d'ouverture du repertoire $ARGV[0]";
$dir = $ARGV[0];
#Lecture du répertoire et affectation du répertoire sous REP.
#Affichage à l'écran du contenu du répertoire sous la forme d'une liste.
@file = readdir ( REP );
print "\nContenu du repertoire : \n";
foreach $f (@file) {
print "\n$f\n";
}
#Recherche du chemin complet du répertoire de travail et affectation à la variable $hdir.
#Après lecture du répertoire, il faut entrer de celui-ci pour effectuer la création de dossiers.
#use Cwd;
#$hdir = getcwd();
#$ch = "$hdir/$dir";
chdir $dir || die "Erreur dans le changement de repertoire de travail";
#Pour tout les fichiers contenus dans le répertoire, il y a création de la chaîne de
#caractère $h (YYMMDD) qui correspond au nom du futur dossier. Après avoir créer le dossier,
#il faut déplacer le fichier correspondant en renommant le chemin d'accès.
foreach my $f (@file) {
if ( -f $f ) {
$h = substr($f,16,6);
mkdir ($h) || die "\nCreation du dossier $f impossible";
rename ("$dir/$f","$dir/$h/$f") || die "\nImpossible de deplacer le fichier $h";
chdir "$h" || die "Erreur dans le changement de repertoire";
do `make_raw_envi.pl $f`;
}
}
Merci d'avance....
Partager