1 votes

Comment utiliser deux variables d'exécution pour obtenir un index de l'autre ?

J'essaie d'écrire un script pour lire l'entrée de l'utilisateur afin de faire des sélections pour un gestionnaire d'IP mais j'ai des problèmes pour formater une variable pour qu'elle soit un index de l'autre. J'ai essayé beaucoup de méthodes différentes mais rien encore.

@setlocal enableextensions enabledelayedexpansion
@echo off
cd %~dp0
set OPT=
set CLN=
if exist IPManCfg.cmd (
call IPManCfg.cmd
) else (
echo Active Network Adaptors:
set /a fc=1
for /F "skip=3 tokens=1,2,3* delims= " %%G in ('netsh interface show interface') DO (
set OPT[!fc!]=%%J
echo [!fc!] %%J
set /a fc+=1
)
set /P CLN="Please select the listed adaptor: "
echo you've selected !CLN! which is !!OPT[!CLN!]!!
endlocal

avec une sortie :

vous avez sélectionné 2 qui est CLN

1voto

Hackoo Points 967

Vous devriez essayer d'ajouter une autre boucle For /L et une condition comme ce code :

@echo off
@setlocal enableextensions enabledelayedexpansion
cd %~dp0
set OPT=
set CLN=
echo Active Network Adaptors:
set /a fc=1
@for /F "skip=3 tokens=1,2,3* delims= " %%G in ('netsh interface show interface') DO (
    set OPT[!fc!]=%%J
    echo [!fc!] %%J
    set /a fc+=1
)

set /P CLN="Please select the listed adaptor: "
@for /L %%i in (1,1,%fc%) do (
    If "!CLN!" EQU "%%i" (
        echo you've selected !CLN! which is "!OPT[%%i]!"
    )
)
pause
endlocal

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X