Хорошо, так скажем, у меня есть следующий кодBatch-файл с переменной частью другой переменной
set playerlevel=5
set x=player
echo %x%level
Я хочу выход быть «5», это возможно?
Хорошо, так скажем, у меня есть следующий кодBatch-файл с переменной частью другой переменной
set playerlevel=5
set x=player
echo %x%level
Я хочу выход быть «5», это возможно?
dbmitch's answer хорош для целых чисел, но если вы хотите отобразить строки или целых чисел, вы можете просто использовать задержанное расширение.
@echo off
setlocal enabledelayedexpansion
set playerlevel=5
set x=player
echo !%x%level!
Обратите внимание, что если код находится внутри кодового блока (т.е. заключены в круглых скобках), синтаксис немного отличается.
@echo off
setlocal enabledelayedexpansion
REM This is just an example code block to show off the alternate syntax with the %%s
for /L %%A in (1,1,1) do (
set playerlevel=5
set x=player
call echo %%!x!level%%
)
Вы можете получить то, что вы хотите с помощью комбинации enabledelayedexpansion
и set /a
эмулировать функцию Eval
Попробуйте это:
@echo off
setlocal enabledelayedexpansion
set playerlevel=5
set x=player
set /a varx = "%x%level"
echo %varx%