Modifier le contenu d'un fichier texte par BAT
Forum Programmation : Modifier le contenu d'un fichier texte par BAT
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
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
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
Dans le lien il y a des exemples, je ne saurais pas t'expliquer mieux.
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.
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.
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
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.
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=%
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
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
Il faut activer l'expansion retardée des variables (HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion mis à 0x00000001, ou cmd /V)
Code :
|
(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
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Okey merci beaucoup c'est super sympa
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
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.
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
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
Montre ton script et le contenu de fichier1.txt
Message édité par CRicky le 04-07-2008 à 23:35:36
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Et bien dans fichier1.txt j'ai écris :
Code :
|
et dans ton script j'ai remplacé maChaine par toto :
Code :
|
J'ai pas testé, mais ça doit fonctionner.
Je pense que tu n'as pas activé l'expansion retardé (qui n'est pas activé par défaut), je me trompe ?
| Citation : Il faut activer l'expansion retardée des variables (HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\DelayedExpansion mis à 0x00000001, ou cmd /V) |
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Il n'y a pas la ligne DelayedExpansion.
J'ai CompletionChar, DefaultColor, EnableExtensions et PathCompletionChar.
Mais je voulais créer ce soft pour un pote qui travaille dans l'armement et je pense pas qu'il aura accès à la base de registre :-S
Par défaut la valeur n'est pas crée, il faut en créer une de type DWORD.
ps: si c'est pour un contexte professionnel, lâche le batch...
Message édité par CRicky le 05-07-2008 à 15:52:26
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Ah tu pense que ca va être bloqué ? tant pis alors...
Merci quand même de ton aide en tout cas
A bientôt peut-être
Non ce n'est pas bloquant...
Il suffit de lancer l'invite de commande avec cmd /V et d'y lancer le fichier .bat
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
Et bien donc pourquoi me dis-tu de lâcher le batch dans un cadre pro ?
Le /V sert à quoi lorsque on lance l'invite de commande ?
parce que ce n'est pas évident à maintenir, et que le codage est complexe pour ce qu'il faut faire...
pour le /v, fait un HELP CMD et tu auras la réponse:
| Citation : /V: ON Active l'expansion retardée des variables d'environnement en |
Message édité par CRicky le 05-07-2008 à 18:29:05
81F900FA750230EDBADA03ECA80875FBECA808
74FBE4603C0175DFB80300CD10B8004CCD21
Répondre à CRicky
OKey ba écoute c'est sympa d'avoir consacré tout ce temps pour moi
Je pense qu'on va clore le sujet là et encore merci à toi.
A bientôt peut-être
Il y a 1062 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
