Aller au contenu

Script bat pour éteindre pc


Messages recommandés

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

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

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...