Récupérer une partie du nom de fichier en variable ?

Récupérer une partie du nom de fichier en variable ? - Shell/Batch - Programmation

Marsh Posté le 18-05-2016 à 15:03:48    

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 ladate=%date:~6,4%%date:~3,2%%date:~0,2% REM récupère la date du jour
ren *.PDF %ladate%-*.PDF REM 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 %ladate%.
Et bizarrement mon batch m'efface les 9 premiers caractères du nom d'origine ???
 
Si quelqu'un à une idée ?
Merci d'avance
JClaude

Reply

Marsh Posté le 18-05-2016 à 15:03:48   

Reply

Marsh Posté le 22-05-2016 à 14:13:50    

Merci !
Mon problèmes est résolu grace à ericlm128
 
Voici la solution pour ceux que cela intéresse :
 

Code :
  1. @echo off
  2. for /r %%a IN (EXTRAIT-*.PDF) DO Call :TEST %%~na %%~xa
  3. goto :EOF
  4. :TEST
  5. set file=%1
  6. set NewFile=%file:~,7%%file:~-9%%file:~7,-9%%2
  7. echo %file%%2
  8. echo %NewFile%
  9. ren %file%%2 %NewFile%
  10. goto :EOF


A+

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed