[DOS) Renommer en masse [Fermé]

Signaler
-
Messages postés
1
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
24 octobre 2007
-
Bonjour

Je recherche un script pour soit:

- Renommer tous les fichiers en FichiersX.txt ou X est un nombre de 1 à ...., le nom originel des fichiers est quelconque.
- Faire une action sur tous les fichies d'un répertoire, le nom des fichiers est quelconque....

Merci d'avance

11 réponses

Il suffit d'écrire ce qui suit dans un fichier text et ensuite le renommer XXXXX.bat (ce script tient compte des long noms avec espace et ...
Mettre ce fichier xxx.bat dans le répertoire de fichiers à modifiés (c'est plus facile) et l'exécuter sous dos.

@echo off
set NN=100
FOR %%I IN (X*.log) DO call :INCREM "%%I"
goto :EOF
:INCREM
rename %1 "XYZ ABC %NN%.ext"
set /A NN=NN+1


J'explique:
echo ... pour ne pas encombrer l'écran
mettre la variable NN au premier numéro désiré: ici 100
chercher tous les fichiers commancant par X et ayant l'extension log et pour chaque fichier trouvé, appeler la routine INCREM
si tu veux tout les fichiers log => *.log entre ()
aller à End Of File lorsque tout est fini
Routine INCREM
renommer le fichier trouvé plus haut(%1) en XYZ ABC 100.ext (par exemple)
Incrémenter le numéro 100 +1 = 101
et recommencer pour le fichier suivant.
6
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 62017 internautes nous ont dit merci ce mois-ci

Messages postés
33477
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 707
Salut,

Pour faire une action sur tous les fichiers d'un répertoire, il faut faire un petit bat


FOR %%F IN (c:\monChemin\*.*) DO copy %%F %%F_backup


Par contre pour incrémenter ton X là c'est plus coton :-/

Ton script est parfait, simple question:

Peut-on remplacer la ligne rename par ce que l'on veut, par exemple l'exécution d'un exécutable qui récupère une info dans un fichier texte comme ceci:

:INCREM
C:\NGPRO\TRAITEMENT\DATA\SERIE.EXE fichier%NN%.txt SERIES\series%NN%.txt
SET /A NN=NN+1


Cela pourrait fonctionner comme cela ou ai-je oublier quelque chose ?

Merci d'avance
Messages postés
33477
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 707
Re...

Dans ce cas, pas besoin de faire tout ça, la simple ligne

FOR %%F in (*.*) DO c:\monprog.exe %%F SERIES\series%%F.txt

ferai l'affaire :)
Si tu ne veux faire qu'une seule action, un ligne FOR ... suffit
Par contre pour exécuter plusieures actions, un appel de routine est indispensable.

BàT.

Ok merci beaucoup, je remettrai un message si j'ai un autre problème

Salutation

Bonjour

Maintenant j'aimerai remplacé tous les retours chariots par des tabulation dans un fichier.

C'est possible ?

Merci d'avance
Messages postés
33477
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 707
Salut,

Cherche l'utilitaire pour dos "sed15" je crois, et regarde son mode d'emploi...

J'essai de faire ça

FOR %%F  IN (*.txt) do COPY /B C:\des.txt+C:\res\%%F+c:\ret\%%F=result.txt


Comment empêcher l'écrasement des données à chaque fois que le programme parcours le FOR ? Je m'explique, je souhaite qu'il écrive les données l'un en dessous de l'autre à chaque FOR et non qu'il écrase les lignes.

Merci d'avance
Bonjour,

J'ai sensiblement le même problème.
J'ai une liste de fichiers qui commencent par la chaine "OUT_" et j'aimerais supprimer cela

Exemple :
OUT_fichier01.txt --> fichier01.txt

Faisable ?

Merci
Messages postés
33477
Date d'inscription
jeudi 14 octobre 2004
Statut
Modérateur
Dernière intervention
24 février 2011
1 707
Salut

move OUT_*.* *.*

Je pense
essaye avec copy à la place de move dans un premier temps...
Messages postés
1
Date d'inscription
mercredi 24 octobre 2007
Statut
Membre
Dernière intervention
24 octobre 2007

The filename, directory name, or volume label syntax is incorrect

je me demande s'il ne faut pas passer par un batch parce que dans ta syntaxe, je ne vois pas comment il peut reconnaitre qu'il faut découper le nom du fichier à partir de OUT_

J'ai essayé différentes méthodes avec MOVE, mais je ne trouve pas la bonne syntaxe déjà.


Ah tiens j'ai trouvé un logiciel
https://www.herve-thouzard.com/modules/wfsection/article.php?articleid=2

Je vais essayer.