Renommer une serie de fichier

paulselvan Messages postés 198 Date d'inscription   Statut Membre Dernière intervention   -  
Idéophage Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'ai une cinquantaine de repertoires contenant chacun des fichiers jpg nommés quelconquement
Je voudrais nommer ces fichiers jpg avec le nom du repertoire les contenant suivi d'un indice ,exemple :
____________________________
avant :
photos\anniversaire\a.jpg
photos\anniversaire\b.jpg
...
photos\anniversaire\z.jpg
___________________________
après :
photos\anniversaire\anniversaire 01.jpg
photos\anniversaire\anniversaire 02.jpg
...

photos\anniversaire\anniversaire 26.jpg
_________________________
J'ai donc une tâche repététif à faire
Pouvez m'aider en me donnant un programme tout fait soit en batch,vb6,java...
Merci d'avance
Cordialement
A voir également:

4 réponses

bg62 Messages postés 23735 Date d'inscription   Statut Modérateur Dernière intervention   2 409
 
si ce n'est que pour des "images" il y a " x " logs (graticiels) qui permettent de le faire ... et ensuite tu peux repartir sur une bonne base ...
suffit de fouiner un peu dans les gestionnaires d'images sur GG ... ;)
(le 'dossier' ça tu verras après car aucune importance... )
0
KX Messages postés 16761 Date d'inscription   Statut Modérateur Dernière intervention   3 020
 
Voici un exemple en Java :

import java.io.File;

public class Rename
{
    public static void main(String[] args)
    {
        for (int i=1; i<args.length; i++)
        {
            File rep = new File(args[i]);        
            int n=1;
            String name;
            File[] list = rep.listFiles();
            if (list!=null)
                for (File fic : list)
                    if (fic.getName().endsWith(args[0]))
                        do name= String.format("%s %03d%s", rep.getName(), n++, args[0]);
                        while (!fic.renameTo(new File(rep,name)));
        }
    }
}

Exemple d'utilisation :
java Rename ".jpg" "photos\anniversaire\" "photos\vacances"
0
Idéophage Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   5
 
Bonjour,

J'ai essayé de faire ça en Perl (je débute, c'était pour m'exercer), voilà ce que j'ai fait :
my $ext = shift @ARGV; 

sub renommer { 
 my ($compt, $path) = (0, @_); 
 my $pref = $path; 
 $pref =~ s=.*/(.*?)$=$1=o; 
  
 foreach (glob (quotemeta($path).'/*') ) { 
  if (-d $_) 
   { &renommer ($_); } 
  elsif ($_ =~ m=\.$ext$=) { 
   $_ =~ s=.*/(.*?)$=$1=o; 
   rename "$path/$_", "$path/$pref $compt.$ext"; 
   $compt++; 
  } 
 } 
} 

renommer $_ foreach (@ARGV); 


Ça fonctionne chez moi, mais je ne sais pas s'il vous est possible d'interpréter du Perl sur Windows facilement. Il faut aussi remplacer le slashs par un anti-slash (ou l'inverse) dans le chemin (ligne "rename ...").

Je me suis inspiré du Java de KX. On fournit en arguments l'extension des fichiers que l'on veut renommer (idée d'amélioration : demander à l'utilisateur sa propre regex, pas trouvé comme faire), et le script explore le dossier et ses sous-dossiers pour appliquer le rename.
0
jisisv Messages postés 3645 Date d'inscription   Statut Modérateur Dernière intervention   934
 
La distribution PERL fournie sous Debian comporte en principe l'utilitaire rename en prime-cadeau. Il y a de grosses chance que cet utilitaire soit disponible dans un bonne distribution PERL pour Win$
En suivant les liens symboliques .
johand@osiris: ~ $ dpkg -S /usr/bin/prename
perl: /usr/bin/prename
0
Idéophage Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   5
 
Une autre solution consiste à copier le fichier avec l'autre nom et supprimer l'ancien.

PS : je ne sais pas trop s'il y a eu un quiproquo, je parlais de rename pour localiser la ligne où il faut inverser le sens du slash avec Windows.
0
paulselvan Messages postés 198 Date d'inscription   Statut Membre Dernière intervention   17
 
Un modèle en Batch files ?
Mercid'avance
0
Idéophage Messages postés 43 Date d'inscription   Statut Membre Dernière intervention   5
 
Hem... J'ai regardé le Batch, ça a pas l'air très intuitif...
0