Remplacer du texte du un fichier ne contenant qu'une ligne

Fermé
Gritank - Modifié par Gritank le 4/12/2014 à 09:53
 Gritank - 9 déc. 2014 à 11:29
Bonjour,

Je cherche à réaliser un batch qui doit trouver une suite de caractère dans un fichier .txt et la remplacer, bien-sur ceci en conservant le reste du fichier.

J'ai déjà trouver plein de solution avec la boucle for /F mais mon problème est que mon fichier .txt ne contient qu'une seule ligne. Parce que mon fichier est en fait un fichier .xml écrit d'une certaine manière (qui ne m'arrange pas du tout).

Voici une partie de mon fichier :

<Name>Motor Drive Standard 0</Name><Data><ManualSpeed>12</ManualSpeed><Direction>Positive</Direction><ReductionRatio>20</ReductionRatio><HomingSpeed>25</HomingSpeed><PushButtonsInputMode>ThroughBoard</PushButtonsInputMode><LimitSwitchesInputMode>ThroughBoard</LimitSwitchesInputMode><LimitSwitchPosition>StartStroke</LimitSwitchPosition><LimitSwitchesInversed>True</LimitSwitchesInversed><Motor>


C'est une parti d'un fichier de configuration, ici pour des moteurs, et le système à connu des évolution. Par exemple changement de nom des éléments ou valeur par défaut. J'aimerai donc créer un batch qui va, dans ce fichier, modifier certains noms et certaines valeurs.

Par exemple remplacer le 25 de <HomingSpeed>25</HomingSpeed> par 50.

J'ai essayé des solutions tel que :

FOR /F "tokens=1 delims=<" %%I IN (D:\\Users\\gritank\\Desktop\\techfile\\ConfigX1500.txt) do (
...
)

Mais le '<' n'est pas valide et mon gros souci c'est comme tout est sur un ligne et bien dès qu'il trouve un caractère ou suite de caractères recherché, il passe à la ligne suivante. Vu qu'il n'y en a pas, la recherche s'arrête.

Merci d'avance pour l'aide. Salutations
A voir également:

2 réponses

dubcek Messages postés 18757 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 19 décembre 2024 5 623
5 déc. 2014 à 08:13
hello
DOS est très limité, utiliser sed, editeur Linux disponible pour Windows
https://www.commentcamarche.net/faq/s/sed
0
Merci,

Cependant il faut que le batch puisse être lancé sur plusieurs machines sans devoir installer d'autres outils.
0