Bonjour.
Je suis debutante en perl et j'ai une petit probleme. Je dois faire une recherche dans un repertoare et ici je dois faire "rename" a en certaine fichier. J'ai fait la recherche recursiv, et quand j'ai fait le renomage d'un repertoare il me retourne un grand numero de 10 chiffres.
Merci beaucoup,
Hanna
Code perl:
# !/perl/bin
#declaram ca variabila globala $directorul in care se face cautarea
#use strict;
my $basedir = "d:teste\\";
my $newdir = "d:teste\\log\\syndication\\Account20\\";
my $oldfile = "d:teste\\log\\syndication\\Account20\\".$f[$i]."_19.txt";
my $newfile = "d:teste\\log\\syndication\\Account20\\".$s[$i]."_19.txt";
my $log2 = "d:teste\\fichier.log";
my $log1 = "d:teste\\repertoire.log";
#my $fisier = "Data";
# cream tabloul cu toate fisierele
#print $basedir;
@f = ('syd_81', 'syderror_81');
@s = ('syd_20', 'syderror_20');
for ( $i=0 ; $i<2 ; $i++) {
print "$newfile = d:teste\\log\\syndication\\Account20\\".$s[$i]."_19.txt"."\n";
print "$oldfile = d:teste\\log\\syndication\\Account20\\".$f[$i]."_19.txt"."\n";
}
@files=();
@dirs = ('Upload\\', 'log\\','log\\syndication\\','log\\syndication\\Account20\\');
open(LOG, ">$log1") || die ("Erreur d'ouverture de $log1, Erreur: $!\n") ;
print "fisierul log1 a fost creat\n";
close LOG;
open(LOG, ">$log2") || die ("Erreur d'ouverture de $log2, Erreur: $!\n") ;
print "fisierul log2 a fost creat\n";
close LOG;
foreach $file (@dirs){
$current_dir="$basedir$file";
files_names($current_dir);
}
############################################################################
sub files_names #06/14/01 9:32:AM
############################################################################
{
my($dir) = @_;
my(@all_files);
print $dir."\n" ;
my $newfile;
my $fisier;
opendir(MYDIR , "$dir") || (print "nu putem deschide directorul".$dir." \n" and exit);
#readdir(MYDIR);
#closedir(MYDIR);
## $start_dir este directorul curent....adica nu chiar
foreach $file (readdir(MYDIR)){
closedir(MYDIR);
next if ($file eq "." || $file eq "..");
$file = "$dir$file";
if (-d ($file)) {#&& ($file=~/Account/)) {
files_names("$file");
if ( $file =~/81/) {
print "---------------------------- ".$file."\n";
rename ($file, $newdir);
open(LOG1, ">>$log1") || die ("Erreur d'ouverture de $log1, Erreur: $!\n") ;
print LOG1 "Le repertoire $file a ete modifie en $newdir \n a la date " .localtime(time) . "\n";
close LOG1;
}
print "NEW DIR ".$newdir."\n";
} elsif (-T ($file)) {
print "fisierul gasit ".$file."\n";
#for ( $i=0 ; $i<3 ; $i++) {
if ($file = ~/81/){
s/81/20/g ;
}
$file = $t;
print "file - ".$t."\n";
#rename ($file, "d:200\\log\\syndication\hanna.log");
#open(LOG2, ">>$log2") || die ("Erreur d'ouverture de $log2, Erreur: $!\n") ;
# print LOG2 "Le fichier $file a ete modifie en $newfile a la date " .localtime(time) . "\n";
#print "fisierul log2 a fost creat\n";
#close LOG2;
} else {
return;
}
}
}