Rechercher le premier élément d'une ligne dans un fichier

Résolu/Fermé
static - Modifié le 5 juil. 2017 à 11:42
 static - 5 juil. 2017 à 14:57
Bonjour,

Mon problème est le suivant j'aimerais dans un premier temps, copier tous les éléments du fichier "catalina.properties" dans "installation.properties", ensuite n'ajouter "catalina.properties." que devant chacune des lignes ne commençant pas par "#" (vous avez compris les lignes non commenté). la copie marche, mais c'est tout.

@echo off
setLocal EnableDelayedExpansion


for /f "tokens=* delims= " %%a in (C:\Users\ctegue\Downloads\ROOT\tomcat\catalina.properties) do (
set /a N+=1
set debut= find /b "#" C:\Users\ctegue\Downloads\ROOT\tomcat\catalina.properties
if %/a% NEQ %debut%
echo catalina.properties.%%a>>C:\Users\ctegue\Documents\installation.properties
)

tout en vous remerciant pour votre aide.

1 réponse

barnabe0057
Messages postés
13952
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
7 août 2022
4 812
5 juil. 2017 à 12:23
Bonjour,

En modifiant légèrement le FOR ça devrait le faire :

@echo off

for /f "eol=# tokens=* delims=" %%a in (C:\Users\ctegue\Downloads\ROOT\tomcat\catalina.properties) do (
echo catalina.properties.%%a>>C:\Users\ctegue\Documents\installation.properties
)

1
Merci sa m'aide beaucoup, bien que je ne voulais pas forcement supprimer les lignes commenté, tant mieux.
J'avais si tu le permet une autre question, je me rend compte que dans mon fichier j'ai aussi des lignes ne comportant pas le signe '=' j'aimerais aussi tout comme tout a l'heure avec '#' mais cette fois si pas seulement au début ne pas prendre en compte.
Merci.
0
barnabe0057
Messages postés
13952
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
7 août 2022
4 812 > static
5 juil. 2017 à 14:43
Je n'ai pas bien compris si tu veux garder ou enlever les lignes comportant le signe égal, voilà pour les supprimer :

@echo off

for /f "eol=# tokens=* delims=" %%a in (C:\Users\ctegue\Downloads\ROOT\tomcat\catalina.properties) do (
echo catalina.properties.%%a | find /v "=" >>C:\Users\ctegue\Documents\installation.properties
)
0
non c'est le contraire :), je veux enlever les lignes ne comportant pas de signe egal
0
barnabe0057
Messages postés
13952
Date d'inscription
lundi 2 mars 2009
Statut
Contributeur
Dernière intervention
7 août 2022
4 812 > static
Modifié le 5 juil. 2017 à 14:53
Ok, voilà :

@echo off

for /f "eol=# tokens=* delims=" %%a in (C:\Users\ctegue\Downloads\ROOT\tomcat\catalina.properties) do (
echo catalina.properties.%%a | findstr "=" >>C:\Users\ctegue\Documents\installation.properties
)
0
Merci, je pense que mon sujet est résolu.
0