Batch: variable dans le nom d'une variable

Résolu/Fermé
Nilocs Messages postés 29 Date d'inscription samedi 3 mars 2012 Statut Membre Dernière intervention 16 août 2013 - Modifié par Nilocs le 16/05/2012 à 18:38
poparnassus Messages postés 426 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 25 décembre 2019 - 2 nov. 2015 à 15:12
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.
A voir également:

1 réponse

dubcek Messages postés 18718 Date d'inscription lundi 15 janvier 2007 Statut Contributeur Dernière intervention 22 mars 2024 5 615
17 mai 2012 à 09:58
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
poparnassus Messages postés 426 Date d'inscription vendredi 28 mars 2014 Statut Membre Dernière intervention 25 décembre 2019 30
2 nov. 2015 à 15:12
quelqun àtrouver la methode pour incrementer le nom de variable ?

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