[batch] Reformater nom liste de fichiers

Résolu/Fermé
danieliiitooo Messages postés 20 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 1 octobre 2010 - 3 mars 2009 à 13:51
cs-bilou Messages postés 769 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 - 6 mars 2009 à 17:06
Bonjour à toutes et à tous,

Pouvez-vous me faire part de vos lumières afin de résoudre la problématique suivante ?

Dans le répertoire c:\folder1 se trouve une liste de fichiers de la forme:

azerty gfgddgfdg - fgdfgdgfdg.pdf
uiopqs fsdfsdfsf - sfdsfsdfsd.pdf
dfghjk gfdgfdgdf - gfdgfdgfdg.pdf
lmwxcv gfgdfgdfg - gfgfdgfggf.pdf

Je souhaiterai les renommer sous la forme: (En fait, ne conserver que les 5 premiers caractères)

azerty.pdf
uiopqs.pdf
dfghjk.pdf
lmwxcv.pdf

Comment puis-je via la commande for "nettoyer" ces fichiers ?
(Ils peuvent rester dans le même répertoire ou être transférés dans un autre répertoire)

J'ai tenté deux trois bricoles sans succès.

Exemple: Faire un dir /-D du contenu du répertoire et extraire le contenu dans un log
Se servir de ce log pour renommer les fichiers (Avec un For...tokens... %%a %%bb in....
Mais il y a forcément une solution plus simple. (une commande magique, alliage d'un for et d'une ~1,5 ...)

Merci d'avance pour votre aide

Daniel

5 réponses

cs-bilou Messages postés 769 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
3 mars 2009 à 21:28
Tien voila sa devrait marcher:

@echo off
setlocal enableDelayedExpansion
for %%i in (*.pdf) do (
set fichier=%%i
ren "%%i" !fichier:~0,6!%%~xi
)
setlocal disableDelayedExpansion
pause


J'espère que j'ai pue t'aider.
Bilou.
0
danieliiitooo Messages postés 20 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 1 octobre 2010 1
5 mars 2009 à 17:01
Merci Bilou.

Cela fonctionne parfaitement lorsque le batch se trouve dans le même répertoire ou se trouvent les fichiers.
Il ne fonctionne néanmoins pas lorsque le batch n'est pas dans le même répertoire.

Exemple: Pour des fichiers contenus dans le répertoire "test"


@echo off
setlocal enableDelayedExpansion
for %%i in (test\*.pdf) do (
set fichier=%%i
ren "%%i" !fichier:~0,10!%%~xi
)
setlocal disableDelayedExpansion
pause

The syntax of the command is incorrect.
The syntax of the command is incorrect.
The syntax of the command is incorrect.
The syntax of the command is incorrect.
The syntax of the command is incorrect.
The syntax of the command is incorrect.
The syntax of the command is incorrect.
The syntax of the command is incorrect.
Press any key to continue . . .
0
cs-bilou Messages postés 769 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
5 mars 2009 à 22:42
Opp et voila forum résolue ^^:

@echo off
setlocal enableDelayedExpansion
for /r "test\" %%i in (*.pdf) do (
set fichier=%%~ni
ren "%%i" !fichier:~0,6!%%~xi
)
setlocal disableDelayedExpansion
pause


Avec ce script tu devrait avoir aucun problème.
Bilou.
0
danieliiitooo Messages postés 20 Date d'inscription jeudi 30 octobre 2008 Statut Membre Dernière intervention 1 octobre 2010 1
6 mars 2009 à 16:43
La grande classe !!!

Merci Bilou
0

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

Posez votre question
cs-bilou Messages postés 769 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 24 février 2011 164
6 mars 2009 à 17:06
Aucun problème les forum sont fait pour sa.

PS:Tu peut mettre en Résolu (Tout en haut de la page)
Merci
0