Dikmas Posté(e) le 2 mai 2012 Partager Posté(e) le 2 mai 2012 Bonjour, J'ai fais un script pour éteindre les ordinateurs dont je m'occupe tous les jours à 19h30. Le script va chercher les ip souhaitées dans un fichier, test si elles sont accessibles via un ping et si c'est le cas exécute la commande shutdown à distance. @echo offclsfor /F %%i IN (C:\test-shutdown\vlan1.txt) DO ( PING -n 1 -w 4 %%i | FIND "TTL=">NUL IF NOT ERRORLEVEL 1 ( shutdown -s -f -m \\%%i -t 120 -c "Extinction programmee de l'ordinateur a 19h30 tous les soirs. L'ordinateur s'eteindra dans 2 minutes." echo machine %%i maintenant eteinte >> C:\test-shutdown\result1.txt rem ... autre commandes ici ) else ( echo machine %%i deja eteinte >> C:\test-shutdown\result1.txt rem ... autre commandes ici )) Le soucis c'est que parfois à 19h30 des utilisateurs sont sur certains pc. Donc j'ai voulus mettre un menu avec comme choix l'annulation de l'extinction (shutdown -a) mais si il n'y a pas de réponse de l'utilisateur, laisser le pc s'éteindre automatiquement 2 minutes plus tard. J'ai donc fais ça @echo offclspausefor /F %%i IN (C:\test-shutdown\vlan1.txt) DO ( PING -n 1 -w 4 %%i | FIND "TTL=">NUL IF NOT ERRORLEVEL 1 ( @echo off echo Extinction programmee de l'ordinateur a 19h30 tous les soirs. L'ordinateur s'eteindra dans 2 minutes. echo. echo Si vous souhaitez annuler l'extinction appuyez sur 1 et validez echo Si vous souhaitez poursuivre l'extinction appuyez sur 2 echo. set /P chiffre="Choix : " if %chiffre%==1 ( shutdown -a goto end ) :end pause rem echo machine %%i maintenant eteinte >> C:\test-shutdown\result1.txt rem ... autre commandes ici ) else ( echo machine %%i deja eteinte >> C:\test-shutdown\result1.txt rem ... autre commandes ici )) Sauf que ça ne fonctionne pas. Visiblement il ne rentre même pas dans la boucle FOR et je ne sais pas pourquoi. C'est peut être tout bête mais je ne comprend pas. Si quelqu'un pouvait m'aider ce serait vraiment super. Merci d'avance. Dikmas Lien vers le commentaire Partager sur d’autres sites More sharing options...
treflemard Posté(e) le 3 mai 2012 Partager Posté(e) le 3 mai 2012 Salut, je n'y connait pas grand chose en script .bat mais çà ne viendra pas du fait que tu utilises des apostrophes echo Extinction programmee de l'ordinateur a 19h30 tous les soirs. L'ordinateur s'eteindra dans 2 minutes. sans échapper les apostrophes ? pourquoi avoir ajouter "pause" ligne 3 ? il est au bon endroit ton :end ? car je comprend pas l'interêt du goto si au final on ne "zappe" aucune instruction .. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Archivé
Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.