Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
Batch - Renommer la 1ère lettre d'un dossier
Auteur Message
Répondre en citant
Message Batch - Renommer la 1ère lettre d'un dossier 
Bonjour,

je souhaiterais créer un batch qui permette de renommer le premier caractère de tous les dossiers commençant par une certaine lettre, exemple :

- sur C:\ j'ai un dossier "test"

- dans ce dossier "test" j'ai plein de dossiers nommés de différentes façons :

o165098
o983763
o837353
e567873
e123456
e214536
e637368
....

- j'aimerais que tous les dossiers commençant par la lettre "e" soit renommés pour remplacer le "e" par un "o", résultat :

o165098
o983763
o837353
o567873
o123456
o214536
o637368
....

Je n'ai pas trouvé les bonnes commandes à utiliser pour garder en mémoire les x caractères qui se trouvent derrière la lettre et surtout ensuite récupérer ces caractères pour les replacer derrière la lettre renommé.

Je ne suis pas très logique, donc si quelqu’un peut me guider vraiment dans ce script ce serait vraiment super !

Merci d'avance pour vos suggestions.



Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Batch - Renommer la 1ère lettre d'un dossier 
Je poste une réponse moi même n'ayant eu aucune réponse...

J'ai ce script qui fonctionne lorsque celui-ci se trouve dans le même répertoire que mes dossiers à renommer :

Code:
@echo off

setlocal enabledelayedexpansion
     for /d %%a in (*) do (
     set directory=%%a
     ren "!directory!" "!directory:e=o!"
)
pause



*****


Maintenant ce que je voudrais, c'est d’exécuter le script dans un dossier en particulier (sans que le script soit dans ce dossier) et dans l'absolu dans un dossier d'un lecteur réseau.

J'ai donc essayé le script suivant :

Code:
@echo off

CD C:\test

setlocal enabledelayedexpansion
for /d %%a in (*) do (
  set directory=%%a
  ren "!directory!" "!directory:e=o!"
)
pause


Résultat : le script se déroule sans problème dans le dossier "test" qui se trouve sur "C:"


****


J'ai modifié mon script comme ceci pour aller dans le dossier "test" sur ma 2ème partition ("D:") :

Code:
@echo off

CD D:\test

setlocal enabledelayedexpansion
for /d %%a in (*) do (
  set directory=%%a
  ren "!directory!" "!directory:e=o!"
)
pause


Résultat : cela ne fonctionne pas et le script s’exécute dans le dossier où se trouve mon script ! POURQUOI ??



Je suis donc tout proche de mon but final d’exécuter mon script sur mon dossier "test" qui se trouve dans un lecteur réseau "Z:" mais quelque chose m'échappe...


Qui peut m'aider ???


Merci d'avance !



Répondre en citant
Message Batch - Renommer la 1ère lettre d'un dossier 
essaye comme ça :

Code:
@echo off

set $dir="d:\test"

setlocal enabledelayedexpansion
for /d %%a in (%$dir%\*) do (
  set directory=%%a
  ren "!directory!" "!directory:e=o!"
)
pause

Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Batch - Renommer la 1ère lettre d'un dossier 
Merci pour ta réponse.


Cela fonctionne presque. Il va bien dans le dossier "test" sur "D:", il renomme bien le dossier "e0898787" en "o0898787" mais il renomme également le dossier racine "test" en "tost"...


On y est presque !!


Edit:
Petite rectification, avec le code :

Code:
@echo off

set $dir=D:\test

setlocal enabledelayedexpansion
for /d %%a in (%$dir%\*) do (
  set directory=%%a
  ren "!directory!" "!directory:e=o!"
)
pause


cela me renvoi une erreur "La syntaxe de la commande n'est pas correcte."....



Message Batch - Renommer la 1ère lettre d'un dossier 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch