Modifier le contenu d'un fichier texte par BAT - Programmation
TomsGuide.com : 700 000 inscrits répondent à toutes vos questions high-tech et informatique.
Pour obtenir de l'aide, inscrivez-vous gratuitement !
 




Mot :   Pseudo :  
 
Bas de page
Auteur
 Sujet : Modifier le contenu d'un fichier texte par BAT
 
Profil : IDNaute
Plus d'informations

Bonsoir à tous je cherche à créer un fichier BAT qui me permettrais de modifier un fichier texte
"PLIGNES.txt" .
En effet je voudrais que le fichier bat me copie le contenu du fichier et créer un autre fichier
"SLIGNES.txt" afin que j'obtienne le texte entre les "====" sur une seul ligne :

AVANT:

Site : AENA_ROUTES_DE_TRARTAN Dest. : R Nb El : 40 G : 0 Cadrans = 53

Liste créé le : 08-01-2007 Date : 12/01/2007 13:45:02
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

BTR LOT ST CHRISTOPHE /QUARTIER Y
Affectation : réalisée = SF
>>> Date : 10 / 01 / 2007 <<< >>> Date : 10 / 01 / 2007 à 18:53:52 <<<
===========================================================================================================
Réf Client : 565 905 930 567 -> Nom : MONSIEUR ANCEL JULES
Adresse : QUARTIER YOYOYE EMPL :
Tronçon : 3-QUARTIER YOYOYE

ElTOURNEE Tar : 0440 Mat : 779 Nb Roues : 5

Libellé de l'anomalie :
----------------------------
IN CONFIRME HC HA
HP 287633

===========================================================================================================
Réf Client : 675 725 918 301 -> Nom : JEAN SARL
Adresse : QUARTIER MANSARDE CATALOGNE
Tronçon : 1-QUARTIER MANSARDE

ElTOURNEE Tar : 0140 Mat : 123 Nb Roues : 4
Identifiant CCTR ou CBE : 080523605791

Libellé de l'anomalie :
----------------------------
PER AU

===========================================================================================================

APRES AVOIR EXECUTE LE FICHIER BAT:

Réf Client : 565 905 930 567 -> Nom : MONSIEUR ANCEL JULES Tronçon : 3-QUARTIER YOYOYE ElTOURNEE Tar : 0440 Mat : 779 Nb Roues : 5Libellé de l'anomalie :----------------------------IN CONFIRME HC HA HP 287633

Réf Client : 675 725 918 301 -> Nom : JEAN SARL Adresse : QUARTIER MANSARDE CATALOGNETronçon : 1-QUARTIER MANSARDE ElTOURNEE Tar : 0140 Mat : 123 Nb Roues : 4 Identifiant CCTR ou CBE : 080523605791Libellé de l'anomalie :----------------------------PER AU

Merci beaucoup pour votre aide

Liens sponsorisés


Inscrivez-vous ou connectez-vous pour masquer ceci.

Profil : IDNaute
Plus d'informations

Pour lire et faire du traitement dans un fichier texte en batch, il faut utiliser la commande FOR /F.
http://fr.wikibooks.org/wiki/DOS/F [...] un_fichier

Profil : IDNaute
Plus d'informations

Merci pour ton info CRicky mais je suis un novice en dos et fichier bat, pourrait tu me donner le code pour utiliser la commande FOR/F, je n'arrive pas à ecrire le fichier bat malgré les info du lien que tu ma donné, merci d'avance pour ton aide

Profil : IDNaute
Plus d'informations

Dans le lien il y a des exemples, je ne saurais pas t'expliquer mieux.

Profil : IDNaute

J'ai lu et compris toute la page indiqué et il est vrai qu'elle ne répond pas au problème de monsieur :) je suis dans le même cas j'aimerais supprimer plusieurs caractères d'un fichier texte automatiquement par l'intermediaire d'un batch ou mini programme en C++ je sais pas.

Profil : IDNaute
Plus d'informations

Tu veux supprimer quoi ?
Dans tous les cas, le batch n'est pas adapté à la manipulation de fichier, il faut mieux passer sur quelque chose de plus évolué comme le python.


---------------
6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Profil : IDNaute

Python je connais pas du tout. Et enfait j'aimerais automatiser une tache que le blocnote fais très bien : le remplacement de caractère. Et plus précisément remplacer des caractères par... rien :) c'est pour ca que j'ai dis supprimer.

Profil : IDNaute
Plus d'informations

Si tu fais un FOR /F sur toutes les lignes, que tu mets ta ligne dans %A et que tu souhaites supprimer "maChaine", il te suffit, au lieu d'utiliser %A%, d'utiliser %A:maChaine=%


---------------
6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Profil : IDNaute

Ca a l'air d'être pas mal mais je suis incapable de le faire. Je ne sais pas du tout programmer en bat désolé. Merci quand même :) si un bon coeur voulait écrire rapidement les lignes complètes ca serais très gentil

Profil : IDNaute
Plus d'informations

Il faut activer l'expansion retardée des variables (HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion mis à 0x00000001, ou cmd /V)

 
Code :
  1. @echo off > fichier2.txt
  2. for /F "delims=" %%A in (fichier1.txt) do(
  3. set var=%%A
  4. set var=!var:maChaine=!
  5. echo !var! >> fichier2.txt
  6. )


(non testé)

 

Attention aux caractères spéciaux comme ) où il faudra mettre ^) pour que l'interpréteur de commande ne l'interprète pas.


Message édité par CRicky le 03-07-2008 Ã  22:40:15

---------------
6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Profil : IDNaute

Okey merci beaucoup c'est super sympa :D par contre la dedans ou est ce que je met les caractères à remplacer (supprimer) ?
Et ton bat là va créer un nouveau fichier en fait pas éditer le premier c'est ca ?
A bientôt merci

Profil : IDNaute
Plus d'informations

Oui, ça crée un nouveau fichier, mais il faut tester avant si l'algo est bon.

Tu remplaces maChaine par le caractère ou le mot que tu souhaites remplacer.


---------------
6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Profil : IDNaute

Bon ok j'ai testé ton truc ca créer bien le fichier2.txt mais il est vide :) il n'y a pas que le caractère maChaine qu'est supprimé apparemment lol

Profil : IDNaute
Plus d'informations

Montre ton script et le contenu de fichier1.txt


Message édité par CRicky le 04-07-2008 Ã  23:35:36

---------------
6800A007B81300CD10B00131C989CF26880541
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Profil : IDNaute

Et bien dans fichier1.txt j'ai écris :

Code :
  1. titi toto tata



et dans ton script j'ai remplacé maChaine par toto :

Code :
  1. @echo off > fichier2.txt
  2. for /F "delims=" %%A in (fichier1.txt) do(
  3. set var=%%A
  4. set var=!var:toto=!
  5. echo !var! >> fichier2.txt
  6. )