windows - Hvordan får man navnet på en variabel ved hjælp af en anden variabel?

Indlæg af Hanne Mølgaard Plasc

Problem



Hvordan får man navnet på en variabel ved hjælp af en anden variabel?
Lige nu laver jeg et lille projekt med navnet 'Cube'. Det er en Survival Simulator. Anyway, jeg har stødt på et problem, men hvis det ikke er muligt at gøre det muligt, vil jeg gøre det på lang vej. Anyway, her er min kode (Batch)


:UseItem    
title Cube - Use Item    
cls    
echo Cube: Choose An Item To Use  
call \%name\%.bat  
echo      1. \%slot1\%  
echo      2. \%slot2\%  
echo      3. \%slot3\%  
echo      4. \%slot4\%  
echo      5. \%slot5\%  
echo      6. \%slot6\%  
echo      7. \%slot7\%  
echo      8. \%slot8\%  
echo      9. \%slot9\%  
set /p input=Choice:   
set SlotChosen=slot\%input\%  
if \%\%SlotChosen\%\%==BlueBerry goto EatBlue 


Så hvad jeg forsøger at gøre er, da SlotChosen ville være slot (input af spiller), for eksempel slot1, slot1 ville være omgivet med\%, på den måde får det navnet på variablen. (Dette er kun et klip af kode.) Jeg har også aktiveret udvidelse i mit program.

Bedste reference


To muligheder for dig.


En bruger forsinket ekspansion.


set SlotChosen=!slot\%input\%!


De andre bruger CALL med SET-kommandoen for at få den ekstra fase af ekspansion.


call set SlotChosen=\%\%slot\%input\%\%\%