Recherche texte dans une log

cs_masmas Messages postés 2 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 11 janvier 2005 - 11 janv. 2005 à 10:04
cs_masmas Messages postés 2 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 11 janvier 2005 - 11 janv. 2005 à 13:48
Bonjour,

Lors du démarrage d'un service ce dernier apparait comme démarré dans windows mais en fait il est trjs en cours de démarrage, j'aimerai donc détecté quand ce dernier est bien monté en scrutant la log qu'il génère.
Je sais qu'il est bien monté quand la chaîne "running mode" est inscrit dans le fichier de log.
Donc il me faudrai un script qui recherche cette chaîne et qui boucle jusqu'à ce que celle ci apparaisse tout en positionnant un timeout.
La log généré n'est pas en accès exclusif.
Voici le début du script que j'ai écrit mais je bloque pour la boucle et la recherche de la chaine en plein milieu d'une ligne :

'******************************************************************
Set WshShell = Wscript.CreateObject("Wscript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
Set myFile = fso.OpenTextFile("e:\test.log")



Set fso = CreateObject("Scripting.FileSystemObject")
Set myFile = fso.OpenTextFile("e:\test.log")


Do While myFile.AtEndOfStream <> True
strLine = myFile.ReadLine
sString = "running Mode"


If strLine = sString then
Wscript.echo("OK")
End If
Loop


myFile.Close
set myFile = nothing
set fso = nothing


'******************************************************************

Pour le moment ce script ne me trouve juste la chaine quand elle existe dans ligne seule, je sais que je dois utiliser la fonction InStr pour rechercher la chaine n'impote ou mais j'ai du mal, de plus le programme ne boucle pas.

Merci d'avance pour l'aide.

3 réponses

cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
11 janv. 2005 à 11:56
avec un timer et la fonction Instr()

Open "e:\test.log" For Input As #1
Do Until EOF(1)
Line Input #1, ligne
If instr(1,ligne,running Mode") then
Wscript.echo("OK")
End if
Loop
Close #1

It@li@
0
cs_ITALIA Messages postés 2169 Date d'inscription vendredi 20 avril 2001 Statut Membre Dernière intervention 30 juin 2009 9
11 janv. 2005 à 11:57
OUPS j'ai oublié un " avant running Mode")

It@li@
0
cs_masmas Messages postés 2 Date d'inscription lundi 13 octobre 2003 Statut Membre Dernière intervention 11 janvier 2005
11 janv. 2005 à 13:48
Cool j'ai modifié mon script, j'écris un VBS dans je ne sais traduire :
Open "e:\test.log" For Input As #1
Do Until EOF(1)

Voici mon script qui marche :

**************************************************************
Set WshShell = Wscript.CreateObject("Wscript.Shell")
Set fs = CreateObject("Scripting.FileSystemObject")
Set myFile = fso.OpenTextFile("e:\test.log")


Do While myFile.AtEndOfStream <> True
strLine = myFile.ReadLine
sString = "running Mode"


If InStr(1,strLine, sString) Then
Wscript.echo("OK")
End If
Loop


myFile.Close
set myFile = nothing
set fso = nothing
***************************************************************

Ca fonctionne bien, mais l'instance s'execute qu'une fois, comment puisje faire pour le script tourne jusqu'à ce que la chaine : "running Mode" soit inscrite.
0
Rejoignez-nous