[batch] Reformater nom liste de fichiers

Résolu
danieliiitooo Messages postés 20 Date d'inscription   Statut Membre Dernière intervention   -  
cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   -
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
A voir également:

5 réponses

cs-bilou Messages postés 769 Date d'inscription   Statut Membre Dernière intervention   164
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   164
 
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   Statut Membre Dernière intervention   1
 
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   Statut Membre Dernière intervention   164
 
Aucun problème les forum sont fait pour sa.

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