précédant | suivant
| sommaire
cp4chg_ext.pl
#!perl -w
# remd: changer les extentions aux fichiers voulus et meme le nom lui meme (voir ligne 58 et 59). alain Adelmar.
$x = 'x=' x 30; # pour faire joli
print "Bonjour, dans quel dossier voulez vous faire des modifications\n";
chomp($resp_dir = <STDIN>);
# au cas ou il y ai une erreur dans la saisie prendre le repertoire pere avant l'erreur de façon a lister les rep fils
while (! -e "$resp_dir") {
($rootdir, $reste) = split(/\\$/, $resp_dir);
$resp_dir = "$rootdir";
open DIR, "$resp_dir" or die "Ouverture du repertoire $resp_dir impossible $!";
@lsdir = readdir(DIR);
close DIR or die "Fermeture impossible $!";
print STDOUT @lsdir;
print "\n$x\n";
print "affiner votre séléction\n";
chomp($resp_dir = <STDIN>);
}
# si repertoire ok, lister ses fichiers et extentions puis pousser le tout dans une @var_liste
opendir DIR, "$resp_dir" or die "Ouverture du repertoire $resp_dir impossible $!";
foreach $file (sort readdir DIR) {
$file = "$file\n";
print <STDOUT>, $file;
push @lsdir, $file;
}
# on aurai pu ecrire juste : @lsdir = readdir(DIR);
closedir DIR or die "Fermeture impossible $!";
#PATH mes frères n'oublions pas, quil faudra stocker le chemin
$road66 = "$resp_dir" . "\\";
print "\n$x\nquelle extentions voulez vous modifier:\n";
chomp($extini = <STDIN>);
while (! &correcte($extini)) {
print "veuillez entrer une extention correcte (3caracteres), expl: txt\n";
chomp($extini = <STDIN>);
}
print "par quelle extention voulez vous la remplacer?\nnotez que vous aurez a valider chaque chagement\n";
chomp($extvoulu = <STDIN>);
while (! &correcte($extvoulu)) {
print "veuillez entrer une extention correcte, expl: xxx\n";
chomp($extvoulu = <STDIN>);
}
# attention extention ne contient que 3 caract et non pas ".xxx" (4)
@contenu = <F>;
foreach $file(@lsdir) {
chomp $file;
$fl = $file;
# je vais me servir de $fl pour le filename_long ( avec path )
$fl = "$road66" . "$fl";
next if ($file eq "\.\n"|"\.\.\n"); # saquer les . et .. de tout les rep
# selectionne les fichiers à modifier
if ($file =~ /()\.($extini)$/i) { # a modifier ici pour chg plus radical avant col 25-27
($filename, $ext) = split(/\./, $file); # idem ici critére de split
$fileout = "$road66" . "$filename" . "\." . "$extvoulu";
print "modification de $file en $fileout : \[O\/N\]\n";
$resp = <STDIN>;
chomp $resp;
# a remplacer par une sub oui_non($resp)
if ($resp =~ /^o|YES|oui|ok/i) {
rename $fl, $fileout;
# ou si on désire faire des copies d'abord (uncommante les lignes ci-dessous) et mettre # au dessus
#open F, "$fl" or die "Ouverture impossible du fichier $fl $!";
#@contenu = <F>;
#close F or die "Saloperie de fermure de m. $!";
#open FO, ">$fileout" or die "Ouverture du fichier cible $fileout $!";
#print FO @contenu;
#close FO || die "Putain de merde de con de vache pourrie $!";
print "le fichier $file a ete modifie en $fileout\n";
}
elsif ($resp =~ /^n|NON|not|NO|neni|nada/) {
print "Bon on passe pour celui là\n";
next;
}
else {
print "c'est pourtant pas compliqué de repondre par\noui ou non\tou\no ou n\tou\nYES ou NO\n";
print "dans le doute je m'abstient\n";
}
}
}
sub correcte($ext) {
my ($ext)= @_;
if ($ext =~ /^\w{3,4}/) {
return 1;
}
else {
return 0;
}
}
END;
précédant | suivant
| sommaire
Last modified: Tue Oct 8 19:03:46 CEST 2002