Batch: variable dans le nom d'une variable [Résolu/Fermé]

Signaler
Messages postés
29
Date d'inscription
samedi 3 mars 2012
Statut
Membre
Dernière intervention
16 août 2013
-
Messages postés
419
Date d'inscription
vendredi 28 mars 2014
Statut
Membre
Dernière intervention
25 décembre 2019
-
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

Messages postés
18190
Date d'inscription
lundi 15 janvier 2007
Statut
Contributeur
Dernière intervention
11 août 2020
4 945
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
Messages postés
419
Date d'inscription
vendredi 28 mars 2014
Statut
Membre
Dernière intervention
25 décembre 2019
18
quelqun àtrouver la methode pour incrementer le nom de variable ?

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