[Shell/Batch] Recherche d'une chaîne de caractère dans un fichier

Recherche d'une chaîne de caractère dans un fichier [Shell/Batch] - Shell/Batch - Programmation

Marsh Posté le 08-01-2014 à 12:11:40    

Salut à vous,
 
Je cherche à faire un script qui me permettra de vérifier la présence d'une chaîne de caractère dans un fichier de log et qui m'ouvre une petite fenêtre à la fin me signalant ou pas si la chaîne de caractère est bien présente dans mon fichier.
 
Je précise que c'est un script batch Windows qui sera ajouté à la fin d'un autre script.
 
Pour le moment j'ai fais ça :
 
IF EXIST "Chaîne-caractère" IN "logs\monfichier.log" goto :KO ELSE msg "%username%" Tout va bien
 
:KO
msg "%username%" Erreur
 
 
Pour le moment, la seule chose qui se passe lorsque je l'exécute, c'est l'apparition du message "Erreur" alors que la chaîne de caractère n'est pas présente dans mon fichier ...
Je suis un débutant en scripting et je pense que ma syntaxe ne doit pas être bonne ...
Si une âme charitable pourrait m'aider ça serait sympa :)
 
Merci d'avance !

Reply

Marsh Posté le 08-01-2014 à 12:11:40   

Reply

Marsh Posté le 08-01-2014 à 15:06:50    

Il y a la commande findstr qui fait ça.
Je l'utilise souvent avec les paramètres "/SI" ou "/SIM".
Voir l'aide avec findstr /?
 
Sinon, il y a le VBS qui pourrait faire cette recherche.

Reply

Marsh Posté le 08-01-2014 à 17:57:07    

Salut,

 

Merci pour ta réponse ;)
Pour le VBS ce n'est pas envisageable, ça doit rester en Batch (ça m'arrange je connais encore moins le VBS :p)

 

Donc pour le moment j'ai fais ça :
for /f %%i in ('findstr /I "Machaine" "monfichier.log" ) do ( msg "%username%" Erreur )

 

Exit l'idée d'avoir un message si pas d'erreur sauf que ça a marché pendant un instant et maintenant non oO

 

Voila ce que j'ai comme erreur :
Le système ne peut trouver le fichier 'findstr /I ..........(reste de la commande)

 

Je comprends pas, j'ai peut être fait une faute de frappe avant de sauvegarder ? Tout à l'heure ça marchait !

 

Merci d'avance pour votre retour :)


Message édité par Beubeu91 le 08-01-2014 à 17:57:29
Reply

Marsh Posté le 09-01-2014 à 10:46:30    

Bon après des recherches et des tests ça fonctionne :)
Voilà mon script si jamais ça peut aider quelqu'un :
for /F %%i in ('findstr /c:"Machaine" Monfichier.log') do ( msg "%username%" Erreur )

Reply

Marsh Posté le 09-01-2014 à 11:32:28    

Petite amélioration pour que le fichier de log soit ouvert si il trouve une erreur :
for /f %%i in ('findstr /C:"Machaine" "Monfichier.log"') do ( msg "%username%" Erreur | start "" "Monfichier.log" )
 
Après plusieurs tests sur la plateforme en question il me lance la fenêtre et le fichier de log autant de fois qu'il trouve l'occurrence !
 
La question : Comment faire pour que FINDSTR s'arrête à la 1ère occurrence trouvée ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed