Bonjour à tous,
Je rencontre un problème sur un petit fichier .bat que j’essaye de faire fonctionner, pour effectuer une standardisation d’arborescence.
Voici le code :
@echo on
set /p numligne=Quel est le nom de la ligne ?
set /p nbr=Combien de machine connecte au reseau as-tu sur la ligne %numligne% ?
MD c:« FTP AUTOM »
for /l %%X in (1,1,%nbr%) do (
set /p OBJET%%X=Nom de la machine %%X ?
)
pause
for /l %%X in (1,1,%nbr%) do (
MD c:\FTP%%X-%OBJET%%X%LIGNE%numligne%
pause
pause
)
if %X% == %nbr%
set /p start=Voulez vous creer une autre arborescence? o/n
if %start%==o (
goto start
)
if %start%==n (
exit
)
Explication :
Je pose deux questions, le nom de la ligne et le nombre de machine.
Je créer un dossier dans le C qui s’appelle FTP AUTOM, se dossier restera vide.
Ensuite je créer une première boucle for qui me permet de sauvegarder le nom de mes machines dans la valeur OBJET%%X pour l’intégrer dans le titre de mes futurs dossier.
Avec pour question : Nom machine 1 ensuite Nom machine 2 etc…
La deuxième boucle FOR permet de créer les dossiers du style :
1 - [NOM MACHINE]LIGNE[NUM_LIGNE].
2 - [NOM MACHINE]LIGNE[NUM_LIGNE].
etc…
Or, les dossiers se créer mais le nom de machine je n’arrive pas à le faire apparaitre dans le nom
Je me retrouve avec :
1 - LIGNE[NUM_LIGNE]
2 - LIGNE[NUM_LIGNE]
3 - LIGNE[NUM_LIGNE]
exemple du cmd :
C:\Users>set /p numligne=Quel est le nom de la ligne ?
Quel est le nom de la ligne ? C2
C:\Users>set /p nbr=Combien de machine connecte au reseau as-tu sur la ligne C2 ?
Combien de machine connecte au reseau as-tu sur la ligne C2 ?5
C:\Users>for /L %X in (1 1 5) do (set /p OBJET%X=Nom de la machine %X ? )
C:\Users>(set /p OBJET1=Nom de la machine 1 ? )
Nom de la machine 1 ?DDD
C:\Users>(set /p OBJET2=Nom de la machine 2 ? )
Nom de la machine 2 ?FFF
C:\Users>(set /p OBJET3=Nom de la machine 3 ? )
Nom de la machine 3 ?GGG
C:\Users(set /p OBJET4=Nom de la machine 4 ? )
Nom de la machine 4 ?ZZZ
C:\Users>(set /p OBJET5=Nom de la machine 5 ? )
Nom de la machine 5 ?EEE
C:\Users>pause
Appuyez sur une touche pour continuer…
C:\Users>for /L %X in (1 1 5) do (
MD c:\FTP%X-Xnumligne
pause
pause
)
C:\Users>(
MD c:\FTP\1-Xnumligne
pause
pause
)
Merci de votre aide