Se connecter avec
S'enregistrer | Connectez-vous

petit programme en dos

Dernière réponse : dans Programmation

bonjour a tous,

voila, je suis nouveau et je ne connias pas grand chose en programmation (sauf pe quelque base en pascal mais bon, rien d'extraordinaire :p ).
ma connection plante souvent (trop souvent a mon gout) c'est pour cela que j'essaye de faire un petit programme qui permettrait de verifier le reseau toutes les minutes (par exemple). des qu'il n'y a plus de reseau, il lance un raccourci de putty me permettant de redemarrer le serveur et relance le programme au bout de 5 minutes.

en regardan un peu sur le forum, j'ai trouve ca:

ping -n 1 192.168.0.1 | find "TTL" > NUL
IF ERRORLEVEL 1 GOTO end
net use "s:" "\\server\fichier"
:end
exit

bon, pour moi, je dois modifier la premiere ligne pour que quand j'ai pas de reseau, il rentre dans la condition.
ping -n 1 192.168.0.1 | find "TTL" < NUL

et je dois aussi modifier la ligne dans la boucle pour executer un racccourci:
c:\kiki.lnk

mais j'ai un petit probleme avec la boucle, comment je peux faire pour qu'il attende 5 minutes quand il est dans la condition et 1 minute quand il est en dehors?

le programme pourrait ressembler a ca

for n=1 to 100000 do
wait 1 minute
ping ...
si pas de ping faire:
c:\putty.lnk
wait 5 minutes
end
end


ca devrait ressemble a ca plus ou moins

merci bcp si vous pouvez m'aider.

Autres pages sur : petit programme dos

Lassé par la pub ? Créez un compte
Expert Programmation

moi à chaque fois que je cherche à faire attendre en batch j'utilise toujours choice.exe, j'me souviens plus éxactement de la syntaxe mais ça doit ressembler à choice /c:²1 /t:²,60 >nul (ou 60 est le nombre de seconde à attendre), le problème c'est qu'il n'est plus fourni avec windows depuis windows 2000 : faut le piquer d'un windows 98 qui traine

en gros ma commande ça fait que l'on demande silencieusement à l'utilisateur d'appuiyer sur ² ou 1 et de prendre le choix ² si jamais l'utilisateur n'a pas choisi pendant 60 sec

chez moi ça donnerais :

  1. :ping
  2. :: ici on ping
  3. ping -n 1 192.168.0.1 | find "TTL" > nul
  4. if errorlevel 1 goto kiki
  5.  
  6. :: on attend ...
  7. choice /c:²1 /t:²,60 > nul
  8. if errorlevel 255 goto end
  9. :: lorsque on appuiye sur Ctrl+C on arrête le script, sinon on continue
  10. goto ping
  11.  
  12. :kiki
  13. :: il est pas possible de lancer kiki.lnk directement et d'attendre la fin, on est obligé d'utiliser start
  14. start c:\kiki.lnk
  15.  
  16. :: et on attend encore ...
  17. choice /c:²1 /t:²,300 > nul
  18. if errorlevel 255 goto end
  19. goto ping
  20.  
  21. :end
  22. echo "Script Stoppé"
Expert Programmation

en fait Choice va attribuer un errorlevel en fonction de la touche qui à été appuiyée, si c'est la première (²), il va renvoyer un errorlevel 1, si c'est la deuxieme il va revoyer 2, ect ... et si on appuie sur Ctrl+C (rappel: généralement quand on appuie sur cette touche c'est pour fermer un programme, d'ailleurs l'action par default sous windows c'est de demander si on veut fermer) il renvoie 255

en tout cas, il marche comme je veux :) , un tout grand merci en tout cas super !!

est ce possible de la mettre en petit icone en bas a droite (systray si je ne me trompe pas :p )? je ne sasi aps trop comment faire vu qu c'est une fenetre dos. je suppose qu'il qu'il faut le compiler? si c'est ca, enfin, de toute facon je vais essayer ce soir :) 

bonjour a tous,

bon, apparement, le ping fait un erreur a partir d'un certain nombres de fois que je le lance. mais apres ca continue a fonctionner.
j'ai aussi remarque que le ping de temps en temps, il ne detecte rien. et donc continue lepetit script pour redemarrer la machine. ce que j'ai fait c'est remettre un ping apres avoir attends x minute et ca fonctionne apparement.

j'aurais voulu aussi savoir comment faire pour ne pas avoir la fenetre dos qui apparait.

meric ;) 
Expert Programmation

Pas possible de supprimer la fenêtre DOS. :( 

Mais tu peux faire un raccourci qui précise "Exécuter : fenêtre réduite". La fenêtre n'aura pas complètement disparue mais tu ne la verras plus au milieu de l'écran :) 

bonjour a tous
je vois que vous vous y connaissez du moins + que moi

voila
je veus faire un .bat tout simple
lorsque je ping une addresse et qu'elle me répond je veut que le fond d'ecran de la fenetre DOS soit vert et des que cette adresse ip n'est plus accessible je veux que le fond passe en rouge ou qu cela déclenche un son

merci de votre aide
Expert Programmation

LOL.

Utilise l'aide de PING, ERRORLEVEL et CMD pour apprendre à faire un seul ping, récupérer le niveau d'erreur du PING (ok,raté) et à changer la couleur du fond. Pour jouer un son, START fichier.son devrait fonctionner.
Lassé par la pub ? Créez un compte