Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2764 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Un petit batch avec boucle / Call / parametre et condition

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Un petit batch avec boucle / Call / parametre et condition

n°1748165
LangueDeGe​ek
Youtubeur Tech & Crypto
Posté le 18-06-2008 à 14:28:34  profilanswer
 

Je cherche à automatiser + log d'un batch qui fait une boucle sur un réseau pour supprimer des raccourcis du menu démarrer.
 
En Algo ca donne à peu pret ça pour 100 PC executé en session root qui peut librement acceder aux C: des postes réseaux :
 
___________________________________________________________
 
Pour les PC de 1 à 100  
   Si elle est allumé / "pingable" (ou autre test pour voir si machine allumée genre net use / If EXIST ...)
            Alors |Je supprime mes 2 vieux racc dans le menu démarrer
                    J'écris dans un fichier log  Le Pc X est fait
   FinSi
Fin du Pour
 
___________________________________________________________
 
J'ai déja un Bat qui fait la boucle et qui supprime, mon probleme est que chaque machine pas allumé fait ramer le script à mort, sur 70PC ca a mis 2h et je ne sais pas lequels ont été traité.
 
 
Le batch Beta 0.1 qui marchera avec votre aide !
 

Main.bat

 
For /L %%N IN (1,1,100) Do (
 IF Le pc est allumé    "pingable" ou tester si un fichier existe dessus ou tester le monter en lecteur réseau ou autre idée ?  
      Call Del.bat %N    qui sera le fichier qui supprime les raccourcis et fait le log  avec passage du numero de PC en paramètre
)    

Del.bat

 
del \\PC%N\C$\Doc & set ......... raccourci à delete         ca marche manuellement avec un numero de pc
echo le PC %N a ete traité >> log.txt
 
C'est le rouge qui pose problème : le passage de paramètre semble ne pas marcher, et surtout le choix du test à effectuer pour voir si la machine distante est allumée
 
 
En vous remerciant


Message édité par LangueDeGeek le 18-06-2008 à 14:32:10
mood
Publicité
Posté le 18-06-2008 à 14:28:34  profilanswer
 

n°1748167
Elmoricq
Modérateur
Posté le 18-06-2008 à 14:29:49  profilanswer
 

Quelle est la question au juste ?


Message édité par Elmoricq le 18-06-2008 à 14:30:19
n°1748170
LangueDeGe​ek
Youtubeur Tech & Crypto
Posté le 18-06-2008 à 14:32:59  profilanswer
 

j'edit, je colore, j'améliore :D
 
Les problemes sont donc le passage en paramètre et le test à effectuer afin que le script ne glande pas 30sec si la machine distante n'est pas allumée

n°1748592
blastkille​r
Posté le 18-06-2008 à 20:17:13  profilanswer
 

Tu peux spécifier les délais de la commande PING, par exemple :
ping -n 1 -w 10 192.168.0.10
Il enverra qu'une seule requête avec un délai d'attente max de 10ms.
Je pense que le problème venait de là ?
 
J'ai pas tout compris parce que t'as peut être trop bien expliqué ^^
Donc s'il y a d'autre problème explique juste le problème simplement stp..

n°1749117
LangueDeGe​ek
Youtubeur Tech & Crypto
Posté le 19-06-2008 à 21:48:14  profilanswer
 

Le probleme est dans le choix du test pour savoir si un pc est allumé
 
et le passage en parametre de %N semble ne pas marcher, est ce correcte le coup du Call XXX.bat %N  puis on réutilise alors tranquillement le %N dans le .bat cité ?

n°1749310
blastkille​r
Posté le 20-06-2008 à 12:23:28  profilanswer
 

"Le probleme est dans le choix du test pour savoir si un pc est allumé"
> j'viens de répondre a ce probleme ...
 
ping -n 1 -w 10 192.168.0.10
if errorlevel 1 echo pc éteind
 
Et pourquoi tu veux faire obligatoirement un 2ieme bat ? pourquoi ne pas tout mettre en un seul ?...

n°1749399
LangueDeGe​ek
Youtubeur Tech & Crypto
Posté le 20-06-2008 à 15:36:36  profilanswer
 

pas faux, d'une part pour essayer le passage en paramere que j'avais jamais fait et à la base pour avoir un log complet en faisant un genre de call del.bat >> log.txt  mais il est vrai que ca sera lourd dans le log d'afficher tout.
 
Bon je test le ping if error ^^

n°1749405
LangueDeGe​ek
Youtubeur Tech & Crypto
Posté le 20-06-2008 à 15:44:10  profilanswer
 

Je vais tester un truc dans ce style
 
For /L %%1 IN (1,1,100) Do (
 
ping -n 1 -w PC%%1
if errorlevel 1 goto next
 
del "\\pc%1\C$\......rac1
del "\\pc%1\C$\......rac2
echo fichier efface sur PC %1 >> log.txt
 
:next
)  
pause

n°1749412
LangueDeGe​ek
Youtubeur Tech & Crypto
Posté le 20-06-2008 à 15:53:35  profilanswer
 

ca m'affiche la parenthèse xD
 
on dirait que le Goto fait sauter ma fin de boucle.... genre il test le ping le premier ping pas donc go to puis ) de fin de for et Boom planté.. je sais meme pas pourquoi il l'affiche.
 
Je vais tester avec un pc allumé
 
 
ha oui en effet le goto kill le for, je ne saivais pas, on va faire des If
 
donc un truc comme ca sans goto
 
For /L %%1 IN (1,1,100) Do (
 
ping -n 1 -w PC%%1
if not errorlevel 1 then (
 
del "\\pc%1\C$\......rac1
del "\\pc%1\C$\......rac2
echo fichier efface sur PC %1 >> log.txt
 
)
)
pause


Message édité par LangueDeGeek le 20-06-2008 à 16:01:40
n°1749498
blastkille​r
Posté le 20-06-2008 à 18:35:21  profilanswer
 

le goto :eof est fait pour quitter la boucle.
 
For /L %%1 IN (1,1,100) Do (
ping -n 1 -w PC%%1
if not errorlevel 0 goto :eof
del "\\pc%1\C$\......rac1
del "\\pc%1\C$\......rac2
echo fichier efface sur PC %1 >> log.txt
)
pause


Message édité par blastkiller le 20-06-2008 à 18:35:52
mood
Publicité
Posté le 20-06-2008 à 18:35:21  profilanswer
 

n°1749511
LangueDeGe​ek
Youtubeur Tech & Crypto
Posté le 20-06-2008 à 19:22:48  profilanswer
 

je ne suis plus au boulo donc je testerais lundi, mais juste une question sur le nombre de %, il en faut bien 2 pour la boucle for et ensuite un devant le nom de variable ? je suis tombé sur des scripts ou la variable est entrouré de %var%

n°1750218
LangueDeGe​ek
Youtubeur Tech & Crypto
Posté le 23-06-2008 à 14:34:40  profilanswer
 

ping -n 1 -w PC%%1  
 
manque le temps en Ms d'ailleur apres le -w
 
 
 
la boucle semble marcher mais ca plante au bout de quelques PC, il y a peu être mieux qu'un test ping pour voir si la machine est allumé, j'ai vu un post ou on test un netstat pour monter une lettre du pc ciblé, on peut tester un netstat avec le IF NOT errorlevel 1 de la même manière je suppose


Message édité par LangueDeGeek le 23-06-2008 à 14:37:56

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  Un petit batch avec boucle / Call / parametre et condition

 

Sujets relatifs
Petit problème de cadrespetit souci de chemin dans un .bat
Création sous vista d'un batch pour lancer un raccourciBoucle which
Modification d'une chaine du registre uniquement en batchPetit probleme pour petit script de news simple
Afficher une boucle, mais pas forcément en ligne...SQL Server : boucle sur une table et affichage
Condition if php[RESOLU] PHP+Array + boucle while
Plus de sujets relatifs à : Un petit batch avec boucle / Call / parametre et condition


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR