Create an account

Very important

  • To access the important data of the forums, you must be active in each forum and especially in the leaks and database leaks section, send data and after sending the data and activity, data and important content will be opened and visible for you.
  • You will only see chat messages from people who are at or below your level.
  • More than 500,000 database leaks and millions of account leaks are waiting for you, so access and view with more activity.
  • Many important data are inactive and inaccessible for you, so open them with activity. (This will be done automatically)


Thread Rating:
  • 391 Vote(s) - 3.6 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Windows Batch Variable within variable

#1
In windows batch could you set a variable within a variable?

Explained:

So the %num% is within the variable.

set num=5
set cnum=test
set h1=%c%num%%

Is it possible to make the percents work like parenthesis?
The output should be h1=test

Any help would be appreciated.
Reply

#2
Are you after something like this?

cls
@echo off
setlocal EnableDelayedExpansion
Set num=5
Set "c!num!=test"
Echo !c5!

See

[To see links please register here]

for more info on delayed expansion.

cls
@echo off
setlocal EnableDelayedExpansion
set num=4
set c1=this is a demo
set c2=second example
set c3=third
set c4=this is the one I want
set c5=last
Echo !c%num%!
Reply

#3
Your example in your question is a mess, but I think I understand what you are looking for:

@echo off
setlocal

set C1=apple
set C2=orange
set C3=banana

set num=2


:: Inefficient way without delayed expansion
:: This will be noticeably slow if used in a tight loop with many iterations
call echo %%C%num%%%

:: The remaining methods require delayed expansion
setlocal enableDelayedExpansion

:: Efficient way 1
echo(
echo !C%num%!

:: Efficient way 2 - useful if inside parenthesized block
:: where %num% will not give current value
echo(
for %%N in (!num!) do echo !C%%N!

:: Showing all values via a loop
echo(
for /l %%N in (1 1 3) do echo !C%%N!
Reply

#4
You may be looking for the Call Set command. This sets cnum to string c1, c2, c3 etc. It changes each time %num% changes. You can then use Call Set to assign any variable (h1 for example) to the value of the variable cnum stands for.

@echo off
setlocal enabledelayedexpansion
set c5=test
set num=5

:: set cnum to string "c5"
set cnum=c%num%
:: set h1 to to the existing variable c5
call set "h1=%%%cnum%%%"
echo %h1%
Reply



Forum Jump:


Users browsing this thread:
1 Guest(s)

©0Day  2016 - 2023 | All Rights Reserved.  Made with    for the community. Connected through