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