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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°2215336
Beubeu91
Posté le 08-01-2014 à 12:11:40  profilanswer
 

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 !

mood
Publicité
Posté le 08-01-2014 à 12:11:40  profilanswer
 

n°2215355
olivthill
Posté le 08-01-2014 à 15:06:50  profilanswer
 

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.

n°2215386
Beubeu91
Posté le 08-01-2014 à 17:57:07  profilanswer
 

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
n°2215470
Beubeu91
Posté le 09-01-2014 à 10:46:30  profilanswer
 

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 )

n°2215484
Beubeu91
Posté le 09-01-2014 à 11:32:28  profilanswer
 

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 ?


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

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

 

Sujets relatifs
Optimisation lecture fichier texteModofier fichier.ini via fichier.bat
Ecrire une string au début d'un fichierProblème Création fichier texte via vbs
[Shell/Batch] Propriétaire d'une video[VBA-Excel] Comment appeler un fichier pour récupérer des données ?
[PowerShell] Compte le nombre de ligne d'un fichiercopier le contenue d'un fichier dans un tableau
[HTML/JS] Créer et télécharger un fichier CSV avec ie 
Plus de sujets relatifs à : [Shell/Batch] Recherche d'une chaîne de caractère dans un fichier


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