Batch Renommer aléatoirement des fichiers

[Fermé]
Signaler
-
 ant -
Bonjour,

Je vais remplacer notre GED et je souhaite récupérer les docs existant pour les intégrer dans la nouvelle.
Pour les intégrer dans ma nouvelle Ged, il me faut des extensions en .TIFF pour qu'il puisse être traité, ça tombe bien ce sont des fichiers dont l'extension a été modifié par la précédente GED par un nombre aléatoire.

Tous les fichiers se nomme de la même façon, c'est seulement l'extension qui diffère.
ex:
A0001C36.03C
A0001C36.03D
A0001C36.03E
A0001C36.03F
A0001C36.03G
A0001C36.03H

pour changer l'extension pas de problème par contre pour renommer aléatoirement j'ai un problème, j'utilise la variable %random% pour qu'il me génère un nombre aléatoire mais lorsque je lance mon script, il conserve le même nombre dans ma boucle et du coup plante parce que le fichier existe déjà.


voici mon code:

for /r "C:\temp" %%a in (*.*) do ren "%%a" "'%random%+1'.doc"


Ou j'ai raté quelque chose?
Merci d'avance pour votre aide

4 réponses

Messages postés
18247
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
2 août 2021
5 333
hello
à quoi sert le +1 ?
essayer
setlocal enableDelayedExpansion  
for /r "C:\temp" %%a in (*.*) do ren "%%a" "!random!.doc"  
Super ça marche.

Le +1 c'était pour voir si je pouvais incrémenter.
Juste pour info c'est quoi la diff entre % et !

Merci beaucoup
Messages postés
18247
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
2 août 2021
5 333
pour modifier des variables à l'intérieur d'une boucle FOR, il faut setlocal enableDelayedExpansion et remplacer % par !

le pourquoi originel, je ne sais pas, les mystères et archaismes du DOS
Merci beaucoup pour l'info ;-)