Batch: variable dans le nom d'une variable

Résolu
Nilocs Messages postés 36 Statut Membre -  
poparnassus Messages postés 462 Statut Membre -
Bonjour,
j'essaie d'écrire un batch permettant d'envoyer des messages à plusieurs ordinateurs en même temps, quelque chose dans ce genre:

@echo off 
set /p nombre= Nombre d'ordinateurs ?  
set numero=0 
:choix 
set /a numero=%numero%+1 
set /p ip%numero%= Poste ?  
if %nombre% NEQ %numero% goto choix 
:boucle 
set /p message= Message ?  
set numero=0 
:for 
if %nombre%==%numero% goto boucle 
set /a numero=%numero%+1 
net send %ip%numero%% %message% 
goto for


Je voudrais utiliser un système avec une variable dont le nom (ip...) est composé d'une autre variable (1, 2, 3, etc...), ce qui permet d'envoyer à n'importe quel nombre d'ordinateurs.
Le problème est que quand l'ordinateur lit %ip%numero%%, il ne comprend pas "afficher la valeur de %ip1%, ou %ip2%", mais prend "%ip%" séparément et affiche juste "numero%" (d'ailleurs je ne comprends pas pourquoi il n'affiche pas numero%%).
Si quelqu'un sait comment afficher la valeur de la variable, je le remercie d'avance.

1 réponse

  1. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 659
     
    hello
    essayer ca
    on boucle sur la liste des variables ipX et on récupère la valeur
    j'ai ajouté un test, avec message==q on sort
    @echo off 
    set /p nombre= Nombre d'ordinateurs ?  
    set numero=0 
    :choix 
    set /a numero=%numero%+1 
    set /p ip%numero%= Poste ?  
    if %nombre% NEQ %numero% goto choix 
    :boucle 
    set /p message= Message ?  
    if %message%==q exit /b
    for /f "tokens=2 delims==" %%a in ('set ip') do (
    	net send %%a %message% 
    )
    goto boucle
    
    0
    1. poparnassus Messages postés 462 Statut Membre 31
       
      quelqun àtrouver la methode pour incrementer le nom de variable ?

      la variable IP%% ne s'incremente pas ...
      set /p ip%numero%= Poste ?
      0