Recherche d'une chaîne de caractère dans un fichier [Shell/Batch] - Shell/Batch - Programmation
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.
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 )
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
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 )
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 ?
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 !