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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Batch avec recherche sous condition

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Batch avec recherche sous condition

n°1874389
philou192
Posté le 17-04-2009 à 14:41:53  profilanswer
 

Bonjour,
Grâce à vos aides, je comprends enfin les paramètres delims et tokens de l' instruction FOR.
Mais là, pour aller encore plus loin dans mes recherches, j' aurais besoin d' un coup de main.
 
Dans un fichier BATCH
Comment puis je faire pour démarrer un script si une (Perform@correction) à été effectuée après une ligne se terminant par value=1 ?  
Dans mon exemple, l' alarme doit s' effectuer le 21 mars à 9 heures 10
 
fichier new.txt
Operator0002.log:622101 24.Mar 12:04:16.599  --MParamDialog: PARAMETER changed ,'Conv. corr. handling', id=0xc426, value=1  
Operator0002.log:622108 24.Mar 12:05:32.708  --MParamDialog: PARAMETER changed ,'Conv. corr. handling', id=0xc426, value=2  
Operator0002.log:622176 24.Mar 12:09:39.857  --DBtnView: CE   Command execute    = 650025 (Perform@correction)  
Operator0002.log:622177 24.Mar 12:09:42.138  --DBtnView: CC   Command completion = 650025 (Perform@correction)  
Operator0002.log:622350 24.Mar 15:41:05.388  --MParamDialog: PARAMETER changed ,'Conv. corr. handling', id=0xc426, value=1  
Operator0002.log:622655 25.Mar 08:28:57.958  --MParamDialog: PARAMETER changed ,'Conv. corr. handling', id=0xc426, value=2  
Operator0002.log:622783 25.Mar 08:42:26.099  --DBtnView: CE   Command execute    = 650025 (Perform@correction)  
Operator0002.log:622784 25.Mar 08:42:28.833  --DBtnView: CC   Command completion = 650025 (Perform@correction)  
Operator0002.log:622798 25.Mar 08:59:10.193  --DBtnView: CE   Command execute    = 650025 (Perform@correction)  
Operator0002.log:622799 25.Mar 08:59:12.036  --DBtnView: CC   Command completion = 650025 (Perform@correction)

Operator0002.log:627342 31.Mar 08:48:22.187  --MParamDialog: PARAMETER changed ,'Conv. corr. handling', id=0xc426, value=1  
Operator0002.log:627595 31.Mar 09:10:12.375  --DBtnView: CE   Command execute    = 650025 (Perform@correction)  
Operator0002.log:627596 31.Mar 09:10:14.046  --DBtnView: CC   Command completion = 650025 (Perform@correction)

 
Merci d' avance pour toutes aides.
Philou

mood
Publicité
Posté le 17-04-2009 à 14:41:53  profilanswer
 

n°1874775
eZula
Posté le 18-04-2009 à 21:20:22  profilanswer
 

Salut,
 
Voici peut être un début de piste :
http://gnuwin32.sourceforge.net/packages/sed.htm
http://gnuwin32.sourceforge.net/packages/grep.htm
 

Code :
  1. del ligne?.txt
  2. del resultat.txt
  3. sed -n "/^Operator.*, value=1/=" new.txt >> ligne.txt
  4. for /f "tokens=*" %%A in (ligne.txt) do CALL :action %%A
  5. :action
  6. set var=%1
  7. set /A var=%var%+1
  8. sed -n "%var%p" new.txt | grep "(Perform@correction)" & if not errorlevel 1 echo ligne %var% >> resultat.txt


 
résultat.txt :
 

Code :
  1. ligne 12
  2. ligne 15


 
Démarche :
1.On repère les n° de ligne de new.txt où on rencontre le motif , value=1 (11 et 14 dans mon fichier test new.txt)
2. Pour chacune de ces valeurs, on additionne 1 pour obtenir le n° de ligne suivant.
3. Dans le n° de ligne suivant, on regarde si on a le motif Perform@correction et si oui, on affiche ce n° de ligne
 
Evidemment à toi de remplacer "echo ligne %var% >> resultat.txt" par l'action que tu souhaites (création de l'alarme)

n°1874878
philou192
Posté le 19-04-2009 à 13:35:02  profilanswer
 

Merci beaucoup pour ton aide précieuse.
En effet, c' est exactement ce que je recherchais.
Il ne me reste plus qu' à trouver une solution pour
afficher un message AU PREMIER PLAN car là, j' ai
également un problème " because interface GUI ".
Lorsque je démarre mon batch manuellement ( double click ),
qui lui, appelle le script lançant le message, celà fonctionne.
Mais lorsque c' est le planificateur de tâche qui démarre
mon batch, pas de message au premier plan alors que
la commande Start fonctionne parfaitement dans mon batch.
 
En tous cas, merci pour tes recherches et tes solutions, eZula
 
Philou


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

  Batch avec recherche sous condition

 

Sujets relatifs
batch récupére variable dans un texteVBS ouvert par un fichier batch
FlashCs3 As2 : GetUrl : COmment marche le Get ? Recherche :[batch] récupérer le resultat d'une commande dans une variable
[Batch]Renommer des fichiers[Résolu]Probleme BATCH création de menu
[Batch] appuyer sur une touche du clavier virtuelementCondition avec commande systeme
Recherche d'index dans list ou array[BATCH/Windows] Changer valeur d'une chaine dans la base de registre
Plus de sujets relatifs à : Batch avec recherche sous condition


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