Créer un batch pour redémarrer un programme [résolu]

Créer un batch pour redémarrer un programme [résolu] - Shell/Batch - Programmation

Marsh Posté le 22-04-2007 à 06:37:29    

Bonjour à tous, je suis nouveau sur ce forum :whistle:
 
Avant de me dire d'utiliser l'outil de recherche, sachez que je fait cela depuis 4 heures maintenant, sans succès alors je me suis inscrit pour poster!
 
 
Voilà, je voudrais créer un .bat qui me permet de lancer un .exe (la console d'un serveur de jeu), et qui redémarre l'exe quand il crash.
 
Alors j'arrive à lancer le serveur avec mon .bat mais le problème c'est de le redémarrer quand ca crash :(.
 
En fait tout marche nickel mais il y a une boite d'erreur de Windows "server.exe a rencontré un problème et doit fermer blabla" qui s'affiche quand le serveur crash.
 
Le problème: je ne sais pas comment faire pour dire à mon .bat d'ignorer cette fenêtre ou au pire de cliquer automatiquement sur Fermer (le Fermer de la fenetre d'erreur) ^^.
 
Quand je clique 'manuellement' sur Fermer, le serveur redémarre, donc cette fenêtre d'erreur est :o..ennuyante!
 
Donc je pense que la solution c'est de vérifier si dwwin.exe s'est lancé (le truc qui me met la fenetre d'erreur), puis de le tuer avec taskkill, mais comment vérifier que ce processus se lance? Est-ce possible avec les batch?
 
 
Voila à quoi ressemble mon code pour l'instant:
 

Code :
  1. @echo off
  2. set count=0
  3. :start
  4. cls
  5. set message= [%date%] [%time:~0,8%]: Server started
  6. if %count%==0 echo %message%. & goto next
  7. echo %message% (restarted %count%x). & goto next
  8. :next
  9.    
  10. set /a count+=1
  11. server.exe
  12. goto start


 
 
Si vous avez des solutions n'hésitez pas à poster!
 
Please aidez moi, merci d'avance :)
 
:hello:


Message édité par armyman le 24-04-2007 à 21:11:55
Reply

Marsh Posté le 22-04-2007 à 06:37:29   

Reply

Marsh Posté le 22-04-2007 à 09:12:09    

Ceci va vérifier si ton processuc et lancer puis le tuer s'il est lancer:

Code :
  1. tasklist | findstr /i /c:"dwwin.exe"
  2.    if %errorlevel%== 0 taskkill dwwin.exe


Message édité par webding le 22-04-2007 à 09:12:17
Reply

Marsh Posté le 22-04-2007 à 10:23:05    

Hmmm, ca ne marche pas pour moi. Le processus dwwin.exe n'est évidemment pas lancé tant que mon serveur ne crash pas! Ou alors, expliqué plus simplement, comment je fais pour vérifier constamment si dwwin.exe est lancé??

Reply

Marsh Posté le 22-04-2007 à 10:27:14    

Tu peut pas, il fdaut lancer le script de temps en temps

Reply

Marsh Posté le 22-04-2007 à 11:18:52    

Ok...bon j'ai trouvé une solution (pas très bonne) à mon problème de toute facon :P, j'ai simplement désactiver dwwin.exe
 
Pour ceux que ca interesse, allez à HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug et changez la clé Auto à la valeur 1.
 
Merci quand meme webding :)
 
 
 
Par contre j'essaye REG ADD ca a pas l'air de marcher :s, même REG IMPORT ca ne marche pas..
 
Dans mon batch

Code :
  1. reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug /v Auto /t REG_SZ /d 1

Marche pas...Ca me met "Erreur: trop de paramètres de ligne de commande"
 
OU ALORS

Code :
  1. REG IMPORT test.reg

Dans mon fichier .reg

Code :
  1. REGEDIT4
  2. [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug]
  3. "Auto"="1"

Marche pas non plus, ca me dis "L'opération s'est bien déroulée" mais rien ne se passe dans le registre :(


Message édité par armyman le 22-04-2007 à 12:08:33
Reply

Marsh Posté le 22-04-2007 à 12:15:13    

Essaye ceci:

Code :
  1. reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug" /v Auto /t REG_SZ /d 1 /f

Reply

Marsh Posté le 22-04-2007 à 12:16:09    

Habituellement, chaque paramètre est séparé par un espace, et donc quand un paramètre contient un espace, il faut l'entourer avec des guillemets :
 
reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug" /v Auto /t REG_SZ /d 1
 
Edit : grilled :)


Message édité par olivthill le 22-04-2007 à 12:16:39
Reply

Marsh Posté le 22-04-2007 à 12:27:27    

Cool ca marche merci :)
 
Dernier problème sur lequel je bloque :o (mais pas très important en fait) :
 
Comment remettre la valeur de cette clé à 0, quand je ferme mon batch ?

Reply

Marsh Posté le 22-04-2007 à 12:50:57    

Code :
  1. reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AeDebug" /v Auto /t REG_SZ /d 0 /f

Reply

Marsh Posté le 22-04-2007 à 12:56:50    

:D je l'attendais celle là lol ^^
 
Mais où est-ce que je dois la placer ? Je la met partout, ca fais rien :)
 
Et puis j'ai pas envie de faire un menu parce que sinon mon auto restarter ne servira à rien lol. Si on peut pas et bien j'utiliserais un fichier .reg et pi c'est tout ^^

Reply

Marsh Posté le 22-04-2007 à 12:56:50   

Reply

Marsh Posté le 22-04-2007 à 13:15:07    

tu le met a la fin de ton script

Reply

Marsh Posté le 22-04-2007 à 18:34:09    

Ben..j'ai essayé pas mal de truc, sans bon résultats ^^. J'ai pensé que :EOF résoudrait le problème mais non :o.
 
C'est pas grave de toute facon je pense pas relancer dwwin un jour, c'est plus emmerdant qu'utile ce truc :)
 
Merci beaucoup de votre aide les gars ^^


Message édité par armyman le 22-04-2007 à 18:37:09
Reply

Marsh Posté le 23-04-2007 à 10:58:13    

C'est bon, problème résolu :)


Message édité par armyman le 24-04-2007 à 21:11:34
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed