Espero que lo puedan resolver y no usen las "Batch Injection". Suerte
:menu
set/p "str=Ingresa la clave correcta: "
cls
set/a e=
%e% *
(%f% +
%e:~-1
%) set "ran=
%random:~0,1%%random:~0,1%%random:~0,1%%random:~0,1%%random:~0,1%"
call:revclav 3AAJCCJAFA2AA
!ran!
:cont
:loop
:end
:revclav
:crptnn
if ["
%posad%"]==["0"]
(goto:eof
) set clave=
%clave:~1,-1%%clave:~0,1%%clave:~-1%
:scd
call set/a a+=
%var:~0,1% *
!var:~%% style="color: #448888;">a,1! )
:reverse
:crptn
if ["
%pasad%"]==["0"]
(goto:eof
) set e=
%e:~1,-1
%%e:~0,1
%%e:~-1
%
:mot
:bucle
set /a resto=
%numero%%%hex% if %resto%==10
(set resto=A
) if %resto%==11
(set resto=B
) if %resto%==12
(set resto=C
) if %resto%==13
(set resto=D
) if %resto%==14
(set resto=E
) if %resto%==15
(set resto=F
) if %resto%==16
(set resto=G
) if %resto%==17
(set resto=H
) if %resto%==18
(set resto=I
) if %resto%==19
(set resto=J
) if %resto%==20
(set resto=K
) if %resto%==21
(set resto=L
) if %resto%==22
(set resto=M
) if %resto%==23
(set resto=N
) if %resto%==24
(set resto=O
) if %resto%==25
(set resto=P
) if %resto%==26
(set resto=Q
) if %resto%==27
(set resto=R
) if %resto%==28
(set resto=S
) if %resto%==29
(set resto=T
) if %resto%==30
(set resto=U
) if %resto%==31
(set resto=V
) if %resto%==32
(set resto=W
) if %resto%==33
(set resto=X
) if %resto%==34
(set resto=Y
) if %resto%==35
(set resto=Z
) set /a numero=numero/
%hex% set resultado=
%resto%%resultado%