Renommer des fichiers en dos

Fermé
fjoyal - 7 déc. 2011 à 05:00
Pierrot6150 Messages postés 1619 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 8 janvier 2017 - 7 déc. 2011 à 15:02
Bonjour,

J'ai plusieurs fichiers (une centaine) dans un répertoire. Ces fichiers se nomment P7230_654000_234000.txt, P7230_655000_234000.txt, etc...

Comment renommer en dos ces fichiers pour enlever les zéros et obtenir P7230_654_234.txt et P7230_655_234.txt?

Merci
Francois



A voir également:

4 réponses

le druide Messages postés 40156 Date d'inscription vendredi 16 avril 2004 Statut Contributeur Dernière intervention 15 octobre 2023 6 606
7 déc. 2011 à 08:46
salut,

avec la commande ren.


C:\Users\pc>help ren
Renomme un ou plusieurs fichiers.

RENAME [lecteur:][chemin]nom_de_fichier1 nom_de_fichier2.
REN [lecteur:][chemin]nom_de_fichier1 nom_de_fichier2.

Vous ne pouvez pas spécifier un nouveau lecteur pour votre destination.
0
ginto5 Messages postés 11349 Date d'inscription mercredi 4 juin 2008 Statut Membre Dernière intervention 23 mars 2024 652
7 déc. 2011 à 08:50
Voir le programme gratuit "RENOMMER".
0
Oui merci je connais bien ren mais comment le faire en batch. N'oublions pas que j'ai des centaines de fichiers. Je ne comprends pas parfaitement la fonction FOR %%
0
Pierrot6150 Messages postés 1619 Date d'inscription lundi 4 mai 2009 Statut Membre Dernière intervention 8 janvier 2017 560
7 déc. 2011 à 15:02
Si comme tu dis, c'est toujours sous la même forme

P7230_123000_123000.txt

Ne garder que P7230_654 et 234 et reconstruire le nouveau nom P7230_654_234.txt
Enregsitrer dans un batch
Une fois la liste terminer, exécuter le batch pour renommer.

Si c'est bien cela ?

Ouvrir le bloc-botes de Windows
Enregistrer ce programme (avec extension .BAT)
Sauvegarder dans le dossier que tu veux renommer
Exécuter ce dernier.

@echo off
setlocal EnableDelayedExpansion

set _Path=%CD%
rem Création du fichier contenant les nouveau nom
echo. ^@ECHO OFF >"%_Path%\Renommer_Fichiers.bat"

rem Lire les noms
cls
echo. Listing, en cours...
FOR /R "%_Path%" %%I IN (*.txt) DO set _Fichier=%%~nI && call :_Manipuler
echo. Terminer.
echo.
echo. ^EXIT >>"%_Path%\Renommer_Fichiers.bat"

rem Exécuter le batch contenant les nouveau nom
echo. Renommer les fichiers, en cours...
start /B /Wait cmd.exe /K "%_Path%\Renommer_Fichiers.bat"
echo. Terminer.

Rem Fin du programme
echo.
echo. Fermeture en cours...
ping 127.0.0.1 -n 6 >nul
del "%_Path%\Renommer_Fichiers.bat" >nul
exit

:_Manipuler
set _Debut=%_Fichier:~0,9%
set _Fin=%_Fichier:~13,3%

set _Ancien=%_Fichier:~0,-1%
set _Nouveau=%_Debut:~0,-1%_%_Fin:~0,-1%

rem Enregistrer nouveau noms
echo. ^IF ^NOT ^EXIST "%_Path%\%_Nouveau%.txt" ^RENAME "%_Path%\%_Ancien%.txt" "%_Nouveau%.txt" >>"%_Path%\Renommer_Fichiers.bat"
goto :EOF
0