Renommer plusieurs fichiers en une fois

matt240490 -  
 matt240490 -
Bonjour,

dans un répertoire, j'ai plusieurs fichiers.
Exemple :

Ventes01012012.txt
Ventes02012012.txt
...

Je veux pouvoir les renommer tous en une fois :
Ventes1.txt
Ventes2.txt
...

J'ai pensé à rename *.* Ventes.txt, pensant que le second allait être en Ventes - Copie.txt

Mais non, seul le premier est renommé.

Comment faire pour que tous les fichiers soient renommés et obtenir ce que je veux ?

Merci beaucoup de votre aide.
A voir également:

11 réponses

juliencolin54 Messages postés 217 Date d'inscription   Statut Membre Dernière intervention   55
 
Bonjour,

Je n'aime pas batch donc je ne ne testerai pas le code que je vais écrire !
Je me rappelle avoir déjà codé exactement ce que tu demande.

C'était dans ce style :
set /A i=0
for %%f in (*) do (
set /A i+=1
rename %%f Ventes%%i.txt
)
pause


Fais une copie de ton dossier avant pour être sûr, et désolé s'il y a des fautes de syntaxe !

Cdlt,
0
matt240490
 
Arf, ça ne fonctionne pas.
0
juliencolin54 Messages postés 217 Date d'inscription   Statut Membre Dernière intervention   55
 
Qu'est ce qui ne fonctionne pas ? Comment ça réagit ? Tu peut donner la sortie s'il te plait ?
0
juliencolin54 Messages postés 217 Date d'inscription   Statut Membre Dernière intervention   55
 
Bon j'ai fait un petit effort. Voici pour toi, chez moi ça marche :
@echo off

set /a ii=0
setlocal ENABLEDELAYEDEXPANSION

for %%f in (*) do (
set /A ii+=1
rename %%f Ventes!ii!.txt
)
pause


J'avais oublié qu'il fallait prendre en compte l'expansion retardée, désolé.


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
je modifierais le code de juliencolin54 comme ça:
setlocal enableDelayedExpansion
set /A i=0
for %%f in (*) do (
set /A i+=1
rename %%f Ventes!i!.txt
)
pause

0
juliencolin54 Messages postés 217 Date d'inscription   Statut Membre Dernière intervention   55
 
En effet c'est plus logique, merci :)
0
matt240490
 
Merci, ça fonctionne.
Beau boulot :)
0
juliencolin54 Messages postés 217 Date d'inscription   Statut Membre Dernière intervention   55
 
De rien,
at your service !

Penses à mettre "Résolu"

Software is like sex, it's better when it's free - Linus Torvald
0
matt240490
 
Par contre, il faudrait juste une petite correction, qu'à chaque fois que je relance le .bat, il reparte de 1...

Sinon, il continue d'incrémenter
0
juliencolin54 Messages postés 217 Date d'inscription   Statut Membre Dernière intervention   55
 
Là il repart à zéro ou pas ?
0
matt240490
 
Si je le fais 1x, il s'appellera bien Ventes1.
Si je relance la procédure, il devient Ventes2.
Il faudrait qu'il le remplace et l'écrase.
0