Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 3 sur 4
Aller à la page: <  1, 2, 3, 4  >
Surveiller l’exécution d'un .bat
Auteur Message
Répondre en citant
Message Surveiller l’exécution d'un .bat 
Revue du message précédent :

Effectivement on peut sortir lorsqu'une erreur est trouvé.

Controle.bat

Code:
@echo off
set $c=1
::Le temps entre chaque test
set $temp=20

:loop
Cls&echo traitement en cours
echo It‚ration No [%$c%]
type "Sortie.txt" | find /i "Could not open input file" && call:envoiemail 1
set /a $c+=1
ping localhost -n %$temp% >NUL
goto:loop

:envoiemail
Mail.vbs "Erreur" "Erreur No %1 utilisateur %username%"
echo Mail envoy‚
exit/b


Pour ton problème de mail montre moi ce que tu as fait sans me montrer le Mot de passe
J'ai testé chez moi et ça marche parfaitement.

A demain

Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message Surveiller l’exécution d'un .bat 
Je viens de recevoir 17 mail

Mort de Rire




______________________________________________________
Répondre en citant
Message Surveiller l’exécution d'un .bat 
Est-il possible de vider (ou supprimer) le fichier Sortie.txt au lancement de Controle.bat




______________________________________________________
Répondre en citant
Message Surveiller l’exécution d'un .bat 
Pour info,
Code:
exit/b
ne fonctionne pas

J'ai été obligé de mettre :
Code:
exit





______________________________________________________
Répondre en citant
Message Surveiller l’exécution d'un .bat 
OK pour pour exit,
tu vois tu commençes à comprendre le bat.

Content de savoir que les mails sont bien envoyé. Okay

Et pour le sortie.txt on peut le détruire en sortie.

Code:
@echo off
set $c=1
::Le temps entre chaque test
set $temp=20

:loop
Cls&echo traitement en cours
echo It‚ration No [%$c%]
type "Sortie.txt" | find /i "Could not open input file" && call:envoiemail 1
set /a $c+=1
ping localhost -n %$temp% >NUL
goto:loop

:envoiemail
Mail.vbs "Erreur" "Erreur No %1 utilisateur %username%"
echo Mail envoy‚
del sortie.txt
exit


Wink




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Surveiller l’exécution d'un .bat 
Il y a pas moyen de le détruire au lancement ??

Car au moins, j'aurais la possibilité de voir la raison du plantage avant de le relancer.




______________________________________________________
Répondre en citant
Message Surveiller l’exécution d'un .bat 
Je pense qu'il est mieux de le renommer en sortie en sortie.old
car si tu le détruit dans le controle.bat tu n'auras pas la sortie d'une erreur possible au lancement de ton premier bat.

Code:
@echo off
set $c=1
::Le temps entre chaque test
set $temp=20

:loop
Cls&echo traitement en cours
echo It‚ration No [%$c%]
type "Sortie.txt" | find /i "Could not open input file" && call:envoiemail 1
set /a $c+=1
ping localhost -n %$temp% >NUL
goto:loop

:envoiemail
Mail.vbs "Erreur" "Erreur No %1 utilisateur %username%"
echo Mail envoy‚
ren sortie.txt sortie.old
exit


Tu peux sinon mettre le del sortie.txt en début du premier BAT

Code:
echo off

del sortie.txt 2>nul

rem ****** Set here your php path *******

set INSTPHP=C:\xampp\php

rem *************************************

PATH=%PATH%;%INSTPHP%;%INSTPHP%\extensions

start controle.bat
"%INSTPHP%\php.exe" -d safe_mode=0 -d max_execution_time=0 xaseco2.php >>Sortie.txt





______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Surveiller l’exécution d'un .bat 
Ok

Merci

Je regarde ca demain car la, il est temps d'aller faire dodo.

A+




______________________________________________________
Répondre en citant
Message Surveiller l’exécution d'un .bat 
Bonjour

A première vu, sa marche (pour le moment).




Mais (oui, il y a un "mais" sinon, c'est pas marrant), je voudrais modifier un petits truc :
- Y as t'il moyen d'afficher une autre nom comme expéditeur sur le mail reçu par le destinataire : avec ce code, comme expéditeur, j'ai : "moi@gmail.com" et je voudrais avoir "Erreur Xaseco" (par exemple)

J'ai ajouté un destinataire au mail avec le code suivant :
Code:
emailObj.To       = "moi@gmail.com;lautre@gmail.com"

Sa à l'air de marcher mais je voudrais avoir votre confirmation sur le code quand même.




Par contre, comment ajouter une condition d'envoi du mail (c'est a dire si c'est un autre message d'erreur)
J'ai un envoi de mail pour la condition d'apparition de :
Citation:
[XASECO2 Fatal Error]
et je voudrais ajouter le message qui s'affiche des fois :
Citation:
Appuyer sur une touche pour continuer...





Merci pour votre aide (déjà donnée et pour celle à venir) Okay

A+




______________________________________________________
Répondre en citant
Message Surveiller l’exécution d'un .bat 
Salut pour traiter different message d'erreur :

Tu peux rajouter le nombre de message d'erreur à chercher dans la variable $Message_erreur.

Code:
@echo off

::Ici les messages d'erreur tu peux en rajouter
set $Message_erreur="Could not open input file" "XASECO2 Fatal Error" "Appuyer sur une touche pour continuer"

set $c=1
::Le temps entre chaque test
set $temp=20

:loop
Cls&echo traitement en cours
echo It‚ration No [%$c%]
for %%a in (%$message_erreur%) do (
  find /i %%a sortie.txt && call:envoiemail %%a || Echo %%a Pas trouv‚
)
set /a $c+=1
ping localhost -n %$temp% >NUL
goto:loop

:envoiemail
Mail.vbs "Erreur" "Erreur [%1] utilisateur [%username%]"
echo Mail envoy‚
ren sortie.txt sortie.old
exit


Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Surveiller l’exécution d'un .bat 
Ok

Je regarderais en rentrant chez moi.

Tu as une idée pour modifier l'expéditeur dans le mail ???




______________________________________________________
Répondre en citant
Message Surveiller l’exécution d'un .bat 
Pour l'expediteur non, (a moins que chaque utilisateur mette ses identifiant)

mais je ne voit pas l'interêt du moment que tu peux passer le nom de l'erreur en argument.




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Surveiller l’exécution d'un .bat 
salut,

ben il peut passer par le serveur smtp (? je sais plus si c'est le bon protocole) de son FAI.
Pas beson de passe, il met l'expéditeur qu'il veut.

sinon en parcourant rapidement le script php, il s'avère qu'il génére un log avec les erreurs et tout, du coup vous pouvez travailler directement dessus. Par ailleurs, je trouve que l'idée de Hugo7, de modifier le php, n'était pas si mauvaise.



Répondre en citant
Message Surveiller l’exécution d'un .bat 
Re

temp a écrit:
sinon en parcourant rapidement le script php, il s'avère qu'il génére un log avec les erreurs et tout, du coup vous pouvez travailler directement dessus. Par ailleurs, je trouve que l'idée de Hugo7, de modifier le php, n'était pas si mauvaise.


Avec les codes qui m'ont été donné, le résultat est (pour moi) nikel. Okay
Mais pour avoir une autre idée, peut-tu développer STP le travail sur le php ??


Merci
A+




______________________________________________________
Répondre en citant
Message Surveiller l’exécution d'un .bat 
Je pense que ce veux dire @temp est d'inclure directement ces tests d'erreurs dans le PHP et (pourquoi pas l'envoi du mail également).
ça serait également une possibilité et certainement plus "propre".

A part pour le cas où le script PHP n'est pas trouvé

Mais pour cela il faudrait avoir le source du PHP et l'envie d'aller trifouiller dedans.

Mort de Rire




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message Surveiller l’exécution d'un .bat 
Moi, perso, je touche pas au php, j'y connais strictement rien.

Même si j'y connais rien en batch, je le comprend un peut mieux




______________________________________________________
Répondre en citant
Message Surveiller l’exécution d'un .bat 
la proposition du service smtp du FAI c'était parce que tu voulais changer l'adresse mail de l'expéditeur.
si c'est plus le cas oubliez.

sinon je rappelle la piste du fichier log qui est déjà, donc par défaut et sans touché au script php, généré
par ce même script php, faut voir juste où est ce log en question, après reste plus qu'à le fitrer avec votre batch
et relever les erreurs possibles, telles qu'elles sont listées dans l'extrait du fichier php, en plus de celles propres
à php.exe ou cmd.exe

peut-être qu'une alerte démarrage et arrêt du serveur ou système par mail serait utile aussi, je sais pas.

enfin, si vous voulez rester sur votre systeme actuel, y'a une commande, "tail", en commande externe ou en batch
pur, qui permet d'afficher sur la console et rediriger vers un fichier en même temps, ça peut vous être utile.


Code:

/**
 * Error function
 * Report errors in a regular way.
 */
set_error_handler('displayError');
function displayError($errno, $errstr, $errfile, $errline) {
   global $aseco;

   // check for error suppression
   if (error_reporting() == 0) return;

   switch ($errno) {
   case E_USER_ERROR:
      $message = "[XASECO2 Fatal Error] $errstr on line $errline in file $errfile" . CRLF;
      echo $message;
      doLog($message);

      // throw 'shutting down' event
      $aseco->releaseEvent('onShutdown', null);
      // clear all ManiaLinks
      $aseco->client->query('SendHideManialinkPage');

      if (function_exists('xdebug_get_function_stack'))
         doLog(print_r(xdebug_get_function_stack()), true);
      die();
      break;
   case E_USER_WARNING:
      $message = "[XASECO2 Warning] $errstr" . CRLF;
      echo $message;
      doLog($message);
      break;
   case E_ERROR:
      $message = "[PHP Error] $errstr on line $errline in file $errfile" . CRLF;
      echo $message;
      doLog($message);
      break;
   case E_WARNING:
      $message = "[PHP Warning] $errstr on line $errline in file $errfile" . CRLF;
      echo $message;
      doLog($message);
      break;
   case E_NOTICE:
      if (strpos($errfile, 'plugin.fufi') !== false) break;
      $message = "[PHP Notice] $errstr on line $errline in file $errfile" . CRLF;
      echo $message;
      doLog($message);
      break;
   default:
      if (strpos($errstr, 'Function call_user_method') !== false) break;
      $message = "[PHP $errno] $errstr on line $errline in file $errfile" . CRLF;
      echo $message;
      doLog($message);
      // do nothing, only treat known errors
   }
}  //




Message Surveiller l’exécution d'un .bat 


Montrer les messages depuis:
Répondre au sujet Page 3 sur 4
Aller à la page: <  1, 2, 3, 4  >
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch