Renommer fichiers PDF utilisant une partie du nom en variable?

Fermé
JCMacintosh Messages postés 22 Date d'inscription mercredi 18 mai 2016 Statut Membre Dernière intervention 23 novembre 2016 - Modifié par JCMacintosh le 18/05/2016 à 15:19
JCMacintosh Messages postés 22 Date d'inscription mercredi 18 mai 2016 Statut Membre Dernière intervention 23 novembre 2016 - 22 mai 2016 à 14:20
Bonjour,
Je cherche le moyen de renommer un grand nombre de fichiers PDF (extraits de comptes bancaires) en réutilisant une partie du nom qu'ils possèdent déjà.
En effet c'est fichiers PDF sont composés comme ceci :
EXTRAIT-60219354812-20121015.PDF soit ( EXTRAIT-NUMEROCOMPTE-DATEEXTRAIT.PDF )
Comme la Date de l'extrait est à la fin du nom de fichier, impossible de trier par date d'extrait.
Je voudrais copier les 8 derniers caractères (année, mois, jour) pour les mettre en premier, exemple EXTRAIT-60219354812-20121015.PDF
devient
20121015-EXTRAIT-60219354812-20121015.PDF
ou Mieux encore
EXTRAIT-20121015-60219354812-20121015.PDF
Je sais qu'en ligne de commande (Windows 7) il est possible de renommer un fichier avec une variable.
Je sais faire ça :
---
set madate=%date:~6,4%%date:~3,2%%date:~0,2% #récupère la date du jour
ren *.PDF %madate%-*.PDF #renomme les PDF avec date du jour en premier
----
Mais je sais pas récupérer les 8 derniers caractères du nom dans ma variable %madate%.
Et cela m'efface les 9 premiers caractères du nom d'origine ???

Si quelqu'un à une idée ?
Merci d'avance
JClaude
A voir également:

1 réponse

JCMacintosh Messages postés 22 Date d'inscription mercredi 18 mai 2016 Statut Membre Dernière intervention 23 novembre 2016 369
Modifié par JCMacintosh le 22/05/2016 à 14:21
Merci !
Mon problème est résolu grace à EricLM128 sur https://www.developpez.net/forums/u800694/ericlm128/

Voici la solution pour ceux que cela intéresse :


@echo off
for /r %%a IN (EXTRAIT-*.PDF) DO Call :TEST %%~na %%~xa
goto :EOF

:TEST
set file=%1
set NewFile=%file:~,7%%file:~-9%%file:~7,-9%%2
echo %file%%2
echo %NewFile%
ren %file%%2 %NewFile%
goto :EOF

A+
0