Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
894 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BATCH/DOS] rechercher/remplacer un ensemble de ligne par d'autres

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[BATCH/DOS] rechercher/remplacer un ensemble de ligne par d'autres

n°2053280
flashub
que du bon
Posté le 31-01-2011 à 17:53:17  profilanswer
 

Je cherche désespérément ce type de script...
J'ai trouvé pour un mot :  

Code :
  1. for /f "delims=" %%a in ('type "%1"') do call :commande "%%a"
  2. goto :eof
  3. :commande
  4. set ligne=%1
  5. set ligne=%ligne:mot_a_remplacer=mot_de_remplacement%
  6. @echo %ligne% >>fichier2.txt


dans cmd :
test.bat fichier1.txt
 
mais pour plusieures lignes introuvable.  
Le retour chariot en dos : ^ ?
il y a un sujet qui s'en rapproche mais je vois pas bien comment le mettre en oeuvre : http://forum.hardware.fr/hfr/Progr [...] 4066_1.htm
 
sinon mon fichier de départ (simplifié) :

Code :
  1. push 'test', 1, 'com'
  2.     getVariable
  3.     push 'pa'
  4.     getMember
  5.     push 'po'
  6.     getMember
  7.     push 'Main'
  8.     getMember
  9.     push 'run'
  10.     callMethod
  11.     pop


 
fichier d'arrivée souhaité :  

Code :
  1. push 'test', 1, 'com'
  2.     getVariable
  3.     push 'pa'
  4.     getMember
  5.     push 'po'
  6.     getMember
  7.     push 'Main'
  8.     getMember
  9.     push 'run'
  10.     callMethod
  11.     pop
  12.     push '*', 1, 'System'
  13.     getVariable
  14.     push 'security'
  15.     getMember
  16.     push 'allowDomain'
  17.     callMethod
  18.     pop


 
Je doit absolument le faire en DOS (ni linux(sed), ni python, ni VBS, ni exe)
 
Merci d'avance, toute piste est la bienvenue

mood
Publicité
Posté le 31-01-2011 à 17:53:17  profilanswer
 

n°2053425
flashub
que du bon
Posté le 01-02-2011 à 14:34:20  profilanswer
 

personne pour m'aiguiller ?
j'ai essayé :  

Code :
  1. for /f "delims=" %%a in ('type "%1"') do call :commande "%%a"
  2. goto :eof
  3. :commande
  4. set ligne=%1
  5. set ligne=%ligne:    push 'run'^    callMethod^    pop=    push 'run'^    callMethod^    pop^    push '*', 1, 'System'^    getVariable^    push 'security'^    getMember^    push 'allowDomain'^    callMethod^    pop%
  6. @echo %ligne% >>fichier2.txt


mais ça n'a pas l'air de marcher :  
quel caractère d'échapement pour les guillemets ?
comment sauter une ligne c'est bien ^ ?
comment conserver la tabulation ?


Message édité par flashub le 01-02-2011 à 14:35:02
n°2053791
flashub
que du bon
Posté le 02-02-2011 à 17:29:49  profilanswer
 

up


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [BATCH/DOS] rechercher/remplacer un ensemble de ligne par d'autres

 

Sujets relatifs
[Batch] Script de comptage du nombre d'occurrences dans un fichierJe ne trouve pas la ligne
Batch Perl Replace[Batch] Optimisation de mon scripte
Suupprimer ligne selectionnée dans jtablePerte d'arguments dans la ligne de commande
Récupérer un pipe \\.\pipe\ via batch, autre propositions bienvenuesShell/Batch grep + sed
Rech programme pour créer automatiquement un dossier par fichier?[VBS] Supprimer un bloc de lignes
Plus de sujets relatifs à : [BATCH/DOS] rechercher/remplacer un ensemble de ligne par d'autres


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR