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

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Batch-Xp] Probleme de variable...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Batch-Xp] Probleme de variable...

n°1627421
microsoft
Posté le 19-10-2007 à 16:16:01  profilanswer
 

Bonjour,
 
Afin d'automatiser le déploiement d'une application sur une salle de pc, j'ai réalisé un script qui m'effectue plusieurs opérations (réveil des machines wol,copie des dossiers d'install et lancement de l'install avec psexec).
 
Ce script allumait le pc, pinguait la machine environ 60 fois (le temps qu'elle démarre) puis copiait les fichiers du serveur d'install vers
mon client.
J'ai voulu améliorer la partie qui s'occupait d'attendre le démarrage complet de la machine; et je me suis inspiré d'un code que j'ai trouvé ici, le but : si la machine répond au ping, alors on lance une copie des fichiers.
 
voici le code que j'ai simplifié pour vous cibler le problème:
 

Code :
  1. for %%p in (PC01, PC02, PC03 etc...) do (
  2. echo etape 1 - Reveil de la machine %%p
  3. call monscriptWOL.bat %%p
  4. :ping
  5. ping -n 1 %%p|find "TTL"
  6. if %errorlevel% NEQ 1 (goto:suite) else (goto :ping)
  7. :suite
  8. echo etape 2 - Copie des fichiers d'install sur %%p


 
Le problème est que lorsqu'on arrive sur la partie ":suite" la valeur de %%p n'est plus subtituée, j'ai un message "etape 2 - copie des fichiers d'install sur %p" (un seul %), pourtant mon premier echo affiche bien "etape 1 - Reveil de la machine PC01", pareil pour mon script et la commande ping...
 
Bref je patauge, j'espère avoir été clair dans mes explications, help  !  
 


---------------
Il [e2fsck] a bien démarré, mais il m'a rendu la main aussitot en me disant "houlala, c'est pas beau à voir votre truc, je préfèrerai que vous teniez vous même la tronçonneuse"
mood
Publicité
Posté le 19-10-2007 à 16:16:01  profilanswer
 

n°1628393
microsoft
Posté le 22-10-2007 à 08:21:57  profilanswer
 

Je ne comprends pas pourquoi la partie ": ping" a une influence sur ma variable %%p  :(  
 
Personne n'aurait une idée ?


Message édité par microsoft le 22-10-2007 à 08:22:24

---------------
Il [e2fsck] a bien démarré, mais il m'a rendu la main aussitot en me disant "houlala, c'est pas beau à voir votre truc, je préfèrerai que vous teniez vous même la tronçonneuse"
n°1629970
Coolnut
Posté le 24-10-2007 à 11:37:56  profilanswer
 

Essaye comme ca:

Code :
  1. for %%p in (PC01, PC02, PC03 etc...) do (
  2. set VrPingPc=%%p
  3. echo etape 1 - Reveil de la machine %%p
  4. call monscriptWOL.bat %%p
  5. :ping
  6. ping -n 1 %%p|find "TTL"
  7. if %errorlevel% NEQ 1 (goto:suite) else (goto :ping)
  8. :suite
  9. echo etape 2 - Copie des fichiers d'install sur %VrPingPc%

n°1629971
Coolnut
Posté le 24-10-2007 à 11:39:26  profilanswer
 

Pourai tu poster ton code complet que je puisse le tester ?


Message édité par Coolnut le 24-10-2007 à 15:00:33
n°1630004
microsoft
Posté le 24-10-2007 à 11:58:50  profilanswer
 

Ta solution aurait fonctionné, mais en fait j'ai pu corriger le problème en supprimant les parenthèses sur la ligne "if" qui entouraient les gotos.
 
Par contre, la partie : ping ne fonctionne pas correctement:

Code :
  1. for %%p in (PC01, PC02, PC03 etc...) do (
  2. echo etape 1 - Reveil de la machine %%p
  3. call monscriptWOL.bat %%p
  4. :ping
  5. ping -n 1 %%p|find "TTL"
  6. if errorlevel 1 goto :ping else goto :suite
  7. :suite
  8. echo etape 2 - Copie des fichiers d'install sur %%p
  9. )


 
si le pc est déjà allumé tout va bien (la boucle : ping n'est exécutée qu'une fois), mais si le pc est en cours d'allumage (: ping doit alors s'exécuter en boucle, et sortir quand le pc répond) cela ne fonctionne toujours pas une fois le pc allumé, il ne semble pas sortir de la boucle.
 
J'ai pourtant fait des essai en ligne de commande, en utilisant

Code :
  1. ping -n 1 pc_allumé | find "TTL"


la valeur de errorlevel est bien 0 à ce moment, quand je teste sur un pc éteint, mon errorlevel est à 1.


---------------
Il [e2fsck] a bien démarré, mais il m'a rendu la main aussitot en me disant "houlala, c'est pas beau à voir votre truc, je préfèrerai que vous teniez vous même la tronçonneuse"
n°1630725
Coolnut
Posté le 25-10-2007 à 10:40:03  profilanswer
 

c'est pas ton code complet ca, tu a dit que tu utiliser psexec, je ne voi pas psexec dans ce code
 
 
Au fait pour cette ligne:

Code :
  1. if errorlevel 1 goto :ping else goto :suite


Tu devrai utiliser des paranthése:

Code :
  1. if errorlevel 1 ( goto :ping ) else ( goto :suite )


Message édité par Coolnut le 25-10-2007 à 10:40:52

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

  [Batch-Xp] Probleme de variable...

 

Sujets relatifs
[Batch-XP] "Unseter" une variable ?Problème avec dreamweaver
Problème de <select>wamp5 - problème phpMyAdmin
problème formulaireBatch + Ant
[CSS] problème sous IE pour placer un pied de pageProblème de validation W3C
Problème de placeholder dans un repeaterfaire la somme des valeurs négatives dans une plage variable
Plus de sujets relatifs à : [Batch-Xp] Probleme de variable...


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