A little script to sort three variables. Unfortunately I had no time to make a bubble sort 🙁
@echo off setLocal EnableDelayedExpansion set _a=%random% set _b=%random% set _c=%random% set _a set _b set _c call :changeasc _a _b call :changeasc _b _c call :changeasc _a _c echo. set _a set _b set _c pause>nul goto exit
:changeasc if !%1! gtr !%2! set /a %1^^=%2^^=%1^^=%2 goto :eof
:exit
Exchanging the variables is performed by three XORs in a row
- a=a XOR b
- b=b XOR a
- a=a XOR b
and the variables exchanges their values.
Example:
- a = 7 ^ 0111
- b= 10 ^ 1010
a = 0111 xor 1010 = 1101 = a
b = 1010 xor 1101 = 0111 = b
a = 1101 xor 0111 = 1010 = a (these variable (new a and b) are the results from the first two lines)
CMD says to XOR variables you have to write set /a variable ^=variable. Unluckily the ^ is a special character which we must escape.
By the way %random% is super effectiv on my computer (fast clicking the batch file):
- run:_a=234,_b=17788,_c=30123
- run:_a=241,_b=18852,_c=20748
- run:_a=241,_b=18852,_c=20748
- run:_a=241,_b=18852,_c=20748
- run:_a=241,_b=18852,_c=20748
- run:_a=244,_b=5844,_c=29600
- run:_a=244,_b=5844,_c=29600
- run:_a=247,_b=7581,_c=23708
- run:_a=247,_b=7581,_c=23708
- run:_a=247,_b=7581,_c=23708
Also check this information about RANDOM