[batch] Renommer 1 caractère d'1 fichier
Résolu
francky172
Messages postés
2
Date d'inscription
Statut
Membre
Dernière intervention
-
Emilien -
Emilien -
Bonjour,
Ayant fait une centaines de recherche, je ne trouve toujours pas le bon code pour modifier un caractère en plein milieu d'un fichier !
Exemple : prenom.nom.txt
J'aimerais avoir : prenom_nom.txt
Sachant que ce code n'est pas censé connnaître le nom du fichier.
Il faudrait que ce code renomme tout les aaaa.bbb.txt en aaaa_bbb.txt dans un même dossier.
Si possible en batch car, j'ai déjà plusieurs lignes en batch dans ce même script.
J'ai tenté les commandes for / set ... en vain. Trop dur!
Configuration Win XP SP3.
Avec la commande for, en admettans que le ou les fichiers sont dans d:
j'arrive à ça :
@echo off
cd d:
set new=_
for %%. in (*.txt) do rename *.* %new%%.*
et là, les fichiers se renomment comme suit :
mmm.ppp.txt = _.ppp.txt
prenom.nom.txt = _.nom.txt
Qui pourrait m'aider ?
Ayant fait une centaines de recherche, je ne trouve toujours pas le bon code pour modifier un caractère en plein milieu d'un fichier !
Exemple : prenom.nom.txt
J'aimerais avoir : prenom_nom.txt
Sachant que ce code n'est pas censé connnaître le nom du fichier.
Il faudrait que ce code renomme tout les aaaa.bbb.txt en aaaa_bbb.txt dans un même dossier.
Si possible en batch car, j'ai déjà plusieurs lignes en batch dans ce même script.
J'ai tenté les commandes for / set ... en vain. Trop dur!
Configuration Win XP SP3.
Avec la commande for, en admettans que le ou les fichiers sont dans d:
j'arrive à ça :
@echo off
cd d:
set new=_
for %%. in (*.txt) do rename *.* %new%%.*
et là, les fichiers se renomment comme suit :
mmm.ppp.txt = _.ppp.txt
prenom.nom.txt = _.nom.txt
Qui pourrait m'aider ?
A voir également:
- Toto919
- Fichier bin - Guide
- Fichier epub - Guide
- Caractère ascii - Guide
- Renommer fichier en masse - Guide
- Fichier rar - Guide
3 réponses
Bonjour,
Faite ceci:
REM *** debut programme ****
dir /B c:\temp\temp > c:\temp\files_list.txt
for /F "tokens=1,2,3 delims=. " %%i IN (c:\temp\files_list.txt) do c:\temp\temp\%%i.%%j.%%k c:\temp\temp\%%i_%%j.%%k
REM *** fin programme ******
Faites l'essai en changeant "rename" par "echo"
En fait je vous fais générer un fichier liste qui contient la liste des fichiers à renommer , ensuite une utilise l'iterateur for /F ou on lit et manipule les noms des fichiers dans ce fichier liste.
Dans cette exemple les fichiers à renommer sont dans c:\temp\temp
Je l'ai testé avec succès
Amicalement
Philippe
Dieu a t'il créé le cerveau ou est-ce l'inverse ?
Heureux les simples d'esprit parce que le royaume des cieux leur appartient.
Faite ceci:
REM *** debut programme ****
dir /B c:\temp\temp > c:\temp\files_list.txt
for /F "tokens=1,2,3 delims=. " %%i IN (c:\temp\files_list.txt) do c:\temp\temp\%%i.%%j.%%k c:\temp\temp\%%i_%%j.%%k
REM *** fin programme ******
Faites l'essai en changeant "rename" par "echo"
En fait je vous fais générer un fichier liste qui contient la liste des fichiers à renommer , ensuite une utilise l'iterateur for /F ou on lit et manipule les noms des fichiers dans ce fichier liste.
Dans cette exemple les fichiers à renommer sont dans c:\temp\temp
Je l'ai testé avec succès
Amicalement
Philippe
Dieu a t'il créé le cerveau ou est-ce l'inverse ?
Heureux les simples d'esprit parce que le royaume des cieux leur appartient.
REM *** debut programme ****
dir /B c:\temp\temp > c:\temp\files_list.txt
cd c:\temp\temp
for /F "tokens=1,2,3 delims=. " %%i IN (c:\temp\files_list.txt) do rename %%i.%%j.%%k %%i_%%j.%%k
cd c:\temp
REM *** fin programme ****
dir /B c:\temp\temp > c:\temp\files_list.txt
cd c:\temp\temp
for /F "tokens=1,2,3 delims=. " %%i IN (c:\temp\files_list.txt) do rename %%i.%%j.%%k %%i_%%j.%%k
cd c:\temp
REM *** fin programme ****
Un grand merci à vous.
Votre ligne de commande fonctionne à merveille.
@ Bientôt
Votre ligne de commande fonctionne à merveille.
@ Bientôt
Bonjour,
je cherche à faire quasiment la même chose mais avec des parenthèses mises en fin de nom de fichier texte.
exemple toto(1).txt a remplacer par toto1.txt ou toto919.txt
soit supprimer les parenthèses soit les remplacer par un chiffre quelconque.
12ans après votre précédent message êtes vous toujours prêt à aider un novice :) ?
merci par avance
for /F "tokens=1,2,3 delims=. " %%i IN (c:\temp\files_list.txt) do c:\temp\temp\%%i.%%j.%%k c:\temp\temp\%%i_%%j.%%k
doit être en une seule ligne !