Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
[Résolu] Problème avec une boucle For
Auteur Message
Répondre en citant
Message [Résolu] Problème avec une boucle For 
Bonjour, j'ai parcourus les différents tutos du site, qui en passant sont vraiment pas mal car ils m'ont permis de faire un petit script quasiment seul, c'est la 2eme fois que je demande de l'aide pour.
Bon sinon, j'ai un petit programme qui tourne, mais pour le moment je doit le lancer autant de fois que je souhaiter l'effectuer, hors j'aimerais que le programme boucle une certaine fois définis par l'utilisateur.
Voici mon petit script :
Code:
@echo off
Rem Configuration du poste client.
set i=0
Set /p nbr_poste="Combien de poste souhaitez-vous configurer? : "
Rem Declaration des variables
for %i% leq %nbr_poste% do

::Nom du poste
set /p nom_pc="Saisir le nom du poste client ou son adresse IP : "
::Groupe du poste
set /p nom_du_groupe="Saisir le nom du groupe du poste : "
::Adresse du serveur
::set /p adresse_wsus="Saisir l'adresse ou le nom du serveur WSUS : "
::Redemarrage choisis par l'utilisateur
::set no_auto_reboot_with_logged_on_users=1
::Fonctionnement de la MAJ
::echo Choisir la configuration du fonctionnement de la Mise a jour automatique (Notification, telechargement, planification, interaction avec les strategies locales)
::echo 2: Notification avant telechargement et notification avant installation des mises a jour
::echo 3: Telechargement automatique des mises a jour et notification avant installation des mises a jour
::echo 4: l’installation des mises a jour est automatique et planifie en fonction des valeurs DWORD ScheduledInstallDay et ScheduledInstallTime
::echo 5: la planification des mises a jour est configure mais l’utilisateur final peut le configurer :
::set /p au_options="Choisir une valeur : "
::set auto_install_minor_update=1
::set no_auto_update=1
::set /p reschedule_wait_time_enabled="Tapez 0 pour ne pas retentez les MAJ echouees ou 1 pour reinstaller les MAJ echouees : "
::set reschedule_wait_time=1
::Choix de la date et de l'heure de la mise en place des MAJ
::set /p schedule_install_day="Choisir quel jour les MAJ s'effectueront, 0 pour quotidien, 1 pour dimanche, etc : "
::set /p schedule_install_time="Choisir l'heure de la mise a jour de 0 a 23 : "
::Utiliser le serveur WSUS (1), utiliser Windows Update(0)
::set use_wu_server=1

::Création de la GPO
reg add \\%nom_pc%\HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /f /v TargetGroup /d %nom_du_groupe%
::reg add \\%nom_pc%\HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /f /v WUServer /t reg_sz /d %adresse_wsus%
::reg add \\%nom_pc%\HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /f /v WUStatusServer /t reg_sz /d %adresse_wsus%
::reg add \\%nom_pc%\HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /f /v TargetGroupEnabled /t reg_dword /d 1
::reg add "\\%nom_pc%\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /f /v AUOptions /t reg_dword /d %au_options%
::reg add \\%nom_pc%\HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /f /v AutoInstallMinorUpdates /t reg_dword /d %auto_install_minor_update%
::reg add \\%nom_pc%\HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /f /v NoAutoUpdate /t reg_dword /d %no_auto_update%
::reg add \\%nom_pc%\HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /f /v RescheduleWaitTime /t reg_dword /d %reschedule_wait_time%
::reg add \\%nom_pc%\HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /f /v RescheduleWaitTimeEnabled /t reg_dword /d %reschedule_wait_time_enabled%
::reg add \\%nom_pc%\HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /f /v ScheduledInstallDay /t reg_dword /d %schedule_install_day%
::reg add \\%nom_pc%\HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /f /v ScheduledInstallTime /t reg_dword /d %schedule_install_time%
::reg add \\%nom_pc%\HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /f /v NoAutoRebootWithLoggedOnUsers /t reg_dword /d %no_auto_reboot_with_logged_on_users%
::reg add \\%nom_pc%\HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate\AU /f /v UseWUServer /t reg_dword /d %use_wu_server%

::Detection manuelle du serveur WSUS
::Recuperation de l'heure système
::set h=%time:~0,2%
::set m=%time:~3,2%
::set /a m2="m+2"
::if "m2" geq 60 "m2=2" h="h+1"
::if "h" geq 24 "h=00"
::set heure=%h%:%m2%
::sc \\%nom_pc% stop wuauserv
::REG Delete "\\%nom_pc%\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v NextDetectionTime /f
::REG Delete "\\%nom_pc%\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\WindowsUpdate\Auto Update" /v DetectionStartTime /f
::sc \\%nom_pc% start wuauserv
::\\%nom_pc%\c$\Windows\system32\wuauclt.exe /detectnow
i++


pause>nul


Je sais il y a pas mal de coms, mais c'est juste pour les tests, c'est plus rapide.
Mais ma boucle ne fonctionne pas, plusieurs raisons, il me dit "02 était inantendus" et résultat il ne boucle pas du tout.
Si quelqu'un pourrai aider sa serai fort sympathique.
Merci.



Dernière édition par lilp le Jeu 2 Fév 2012 - 13:42; édité 1 fois
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message [Résolu] Problème avec une boucle For 
Hello ^^
Bon, j'ai vu un truc bizarre dans ton code Rolling Eyes , mais je pense que c'est ça qu'il te faut:

Code:

@echo off

set nbr_poste=0

Set /p nbr_poste="Combien de poste souhaitez-vous configurer? : "

for /l %%A in (0,1,%nbr_poste%) do (
    set /p nom_pc="Saisir le nom du poste client ou son adresse IP : "
    set /p nom_du_groupe="Saisir le nom du groupe du poste : "
    reg add \\%nom_pc%\HKLM\Software\Policies\Microsoft\Windows\WindowsUpdate /f /v TargetGroup /d %nom_du_groupe%
    )
   
:: c'est quoi "i++" ??

pause>nul







Dernière édition par stryk le Jeu 2 Fév 2012 - 12:34; édité 1 fois

______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Résolu] Problème avec une boucle For 
La variable 'i' est le compteur et 'i++' est l'incrémentation de celle-ci.
Peut-tu m'expliquer, la partie
Code:
for /l %%A in (1,1,%nbr_poste%)




Répondre en citant
Message [Résolu] Problème avec une boucle For 
Ah ok ok
%i% je suis d'accord, par contre "i++" ne fonctionne pas en batch !!
Pour incrémenter tu as plusieurs solutions:
Code:

:: +1
set /a i+=1
:: ou
set /a i=i+1

Pour l'explication, en fait j'ai supprimer ta vérification de %i% avec %nbr_poste% !
Si on ne tape rien, %nbr_poste% = 0 vu qu'on l'a déclaré juste avant.
Ensuite, la syntaxe FOR /L, pour l'exemple:
Code:

echo off
set /p MAX=Nombre de fois que la boucle va effectuer les actions \\:
:: on commence à 0, on augmente d'un et on finit à %MAX% !!
FOR /L %%A in (0,1,%MAX%) do (
   echo blabla
   echo voilou
   echo etc ...
   )


Et donc, pour ton code il serait juste de placer 0 à la place de 1 ( je me suis trompé, lol, c'était du vite fait ^^ )
Code:

for /l %%A in (0,1,%nbr_poste%)

J'ai corrigé mon 1er post Wink




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Répondre en citant
Message [Résolu] Problème avec une boucle For 
Oki merci beaucoup pour cette aide et cette explication.
Je sais faire maintenant une belle boucle for en Batch, et incrémenter aussi Smile.



Répondre en citant
Message [Résolu] Problème avec une boucle For 
Nickel Okay




______________________________________________________


L'ignorance est un fléau qui engendre la haine et la mort
La connaissance est une arme qui surpasse toutes les autres
Partagez votre savoir, sinon il sera perdu à jamais
Message [Résolu] Problème avec une boucle For 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch