Batch Renommer aléatoirement des fichiers

Fermé
Ant - 24 févr. 2012 à 11:46
 ant - 24 févr. 2012 à 14:18
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

A voir également:

4 réponses

dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
Modifié par dubcek le 24/02/2012 à 12:08
hello
à quoi sert le +1 ?
essayer
setlocal enableDelayedExpansion  
for /r "C:\temp" %%a in (*.*) do ren "%%a" "!random!.doc"  
0
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
0
dubcek Messages postés 18755 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 14 novembre 2024 5 621
24 févr. 2012 à 14:05
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
0
Merci beaucoup pour l'info ;-)
0