Renommer à la volée plusieurs dossiers selon une liste
Fermé
kyuubi66
Messages postés
39
Date d'inscription
mercredi 13 août 2014
Statut
Membre
Dernière intervention
20 avril 2021
-
7 avril 2015 à 12:06
jogadyl Messages postés 14 Date d'inscription dimanche 3 mai 2015 Statut Membre Dernière intervention 17 mai 2015 - 14 mai 2015 à 10:44
jogadyl Messages postés 14 Date d'inscription dimanche 3 mai 2015 Statut Membre Dernière intervention 17 mai 2015 - 14 mai 2015 à 10:44
A voir également:
- Renommer des dossiers en masse
- Renommer des fichiers en masse - Guide
- Renommer iphone - Guide
- Renommer des répertoires en masse - Forum Windows
- Afficher la taille des dossiers - Guide
- Afficher les dossiers cachés - Guide
4 réponses
kyuubi66
Messages postés
39
Date d'inscription
mercredi 13 août 2014
Statut
Membre
Dernière intervention
20 avril 2021
11
24 avril 2015 à 13:40
24 avril 2015 à 13:40
up
Personne ne sait m'aider? je ne vois pas vraiment comment je peux faire ça
Merci de votre aide
Personne ne sait m'aider? je ne vois pas vraiment comment je peux faire ça
Merci de votre aide
jogadyl
Messages postés
14
Date d'inscription
dimanche 3 mai 2015
Statut
Membre
Dernière intervention
17 mai 2015
6 mai 2015 à 21:19
6 mai 2015 à 21:19
transforme le fichier qui contient les remplacements à faire et transforme-le en batch que tu pourras exécuter
Par exemple si ton fichier se présente sous forme d'un tableau avec une colonne pour l'ancien nom et une autre pour le nouveau du genre
3860 riri
3956 fifi
4153 loulou
tu peux facilement le transformer avec un éditeur de texte en
rename 3860 riri
rename 3956 fifi
rename 4153 loulou
tu le sauve en .bat et voilà!
Ce n'est pas de la programmation de haute volée mais c'est simple et rapide a mettre en oeuvre.
Par exemple si ton fichier se présente sous forme d'un tableau avec une colonne pour l'ancien nom et une autre pour le nouveau du genre
3860 riri
3956 fifi
4153 loulou
tu peux facilement le transformer avec un éditeur de texte en
rename 3860 riri
rename 3956 fifi
rename 4153 loulou
tu le sauve en .bat et voilà!
Ce n'est pas de la programmation de haute volée mais c'est simple et rapide a mettre en oeuvre.
kyuubi66
Messages postés
39
Date d'inscription
mercredi 13 août 2014
Statut
Membre
Dernière intervention
20 avril 2021
11
13 mai 2015 à 14:43
13 mai 2015 à 14:43
bonjour et merci pour ta réponse
Je n'ai pas de fichier j'ai une arborescence réseau à multi niveaux donc le 3860 riri je ne sais pas où il se trouve dans mon arborescence... d'où mon problème
Je ne sais pas si je suis clair
Je n'ai pas de fichier j'ai une arborescence réseau à multi niveaux donc le 3860 riri je ne sais pas où il se trouve dans mon arborescence... d'où mon problème
Je ne sais pas si je suis clair
dubcek
Messages postés
18718
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
22 mars 2024
5 615
14 mai 2015 à 10:32
14 mai 2015 à 10:32
hello
mais comment savoir en quel nom renommer un fichier ?
mais comment savoir en quel nom renommer un fichier ?
jogadyl
Messages postés
14
Date d'inscription
dimanche 3 mai 2015
Statut
Membre
Dernière intervention
17 mai 2015
Modifié par jogadyl le 14/05/2015 à 10:46
Modifié par jogadyl le 14/05/2015 à 10:46
Ça aurait été plus clair avec plus d'information sur la structure des répertoires, si les noms à changer pouvaient se retrouver à plusieurs endroits, sur la façon dont les noms à changer et les noms de remplacement sont nommés, ainsi que sur la structure du fichier qui contient les changements à effectuer.
A défaut voici les conventions que j'ai utilisées :
- les noms à changer peuvent se trouver n'importe où et même plusieurs fois dans l'arborescence.
- ces noms et les noms de remplacement ne comportent pas d'espace. Si c'est le cas tu devras adapter. En revanche il n'y a pas de contrainte sur les noms de fichiers qui appartiennent à l'arborescence mais qu'on ne veut pas remplacer.
- le fichier qui contient les anciens et les nouveaux noms des répertoire s'appelle remplace.txt
Chaque ligne contient l'ancien nom et le nouveau nom séparés par des espaces ou des tabulations. Ces noms ne doivent pas contenir d'espaces et ne doivent pas être entre guillemets.
Le programme commence par construire la liste des répertoires à remplacer dans le fichier repertoires.txt
Pour chaque répertoire on note le remplacement à faire dans un fichier temp par comparaison avec le fichier remplace.txt
Dans le programme le nom à remplacer est %%A et le nom de remplacement est %%B. %%R est le chemin complet du répertoire à renommer.
Il n'est en effet pas possible de faire les remplacements au fur à mesure car les indications du fichier repertoires.txt ne seraient plus valables.
Il va falloir exécuter ces instructions dans un ordre tel que les instructions suivantes soient toujours possibles.
ex:
si on a les remplacements suivants à faire
antoine toni
emmanuel manu
joseph jojo
et que les répertoires se trouvent dans la même arborescence
antoine\emmanuel\joseph
Les remplacements à faire sont
Si on fait les remplacements dans cet ordre, seule la première instruction aboutira.
L'astuce consiste à reclasser les instructions enregistrées dans le fichier temp par ordre alphabetique inverse (c.a.d du plus long au plus court).
Toutes les instructions peuvent alors s'exécuter sans problème.
Le fichier classé est enregistré dans temp.bat et il n'y a plus qu'à le lancer pour faire le travail.
A défaut voici les conventions que j'ai utilisées :
- les noms à changer peuvent se trouver n'importe où et même plusieurs fois dans l'arborescence.
- ces noms et les noms de remplacement ne comportent pas d'espace. Si c'est le cas tu devras adapter. En revanche il n'y a pas de contrainte sur les noms de fichiers qui appartiennent à l'arborescence mais qu'on ne veut pas remplacer.
- le fichier qui contient les anciens et les nouveaux noms des répertoire s'appelle remplace.txt
Chaque ligne contient l'ancien nom et le nouveau nom séparés par des espaces ou des tabulations. Ces noms ne doivent pas contenir d'espaces et ne doivent pas être entre guillemets.
echo off
cls
dir /ad /s /b >repertoires.txt
if exist temp del temp
for /f "tokens=1,2" %%A in (remplace.txt) do (
for /f "tokens=*" %%R in ('findstr /I "%%A$" repertoires.txt') do (
echo rename "%%R" "%%B" >> temp
)
)
sort /R temp /O temp.bat
del repertoires.txt
del temp
call temp.bat
del temp.bat
Le programme commence par construire la liste des répertoires à remplacer dans le fichier repertoires.txt
Pour chaque répertoire on note le remplacement à faire dans un fichier temp par comparaison avec le fichier remplace.txt
Dans le programme le nom à remplacer est %%A et le nom de remplacement est %%B. %%R est le chemin complet du répertoire à renommer.
Il n'est en effet pas possible de faire les remplacements au fur à mesure car les indications du fichier repertoires.txt ne seraient plus valables.
Il va falloir exécuter ces instructions dans un ordre tel que les instructions suivantes soient toujours possibles.
ex:
si on a les remplacements suivants à faire
antoine toni
emmanuel manu
joseph jojo
et que les répertoires se trouvent dans la même arborescence
antoine\emmanuel\joseph
Les remplacements à faire sont
rename "antoine" toni
rename "antoine\emmanuel" manu
rename "antoine\emmanuel\joseph" jojo
Si on fait les remplacements dans cet ordre, seule la première instruction aboutira.
L'astuce consiste à reclasser les instructions enregistrées dans le fichier temp par ordre alphabetique inverse (c.a.d du plus long au plus court).
Toutes les instructions peuvent alors s'exécuter sans problème.
Le fichier classé est enregistré dans temp.bat et il n'y a plus qu'à le lancer pour faire le travail.