Renommer des fichiers en dos

fjoyal -  
Pierrot6150 Messages postés 3186 Statut Membre -
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 40644 Date d'inscription   Statut Contributeur Dernière intervention   6 610
 
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 8747 Date d'inscription   Statut Membre Dernière intervention   653
 
Voir le programme gratuit "RENOMMER".
0
fjoyal
 
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 3186 Statut Membre 560
 
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