Estoy haciendo un programa que te de todas las combinaciones posibles de los caracteres que le metas (En este caso, 37). Pero me ha surgido un problema. El codigo que llevo escrito del programa es mas o menos esto:
@ECHO OFF
setlocal enabledelayedexpansion
set /A CARACTERES=37+1
set /A CONTADOR=1
set /A CONTADOR2=1
:0
set CLAVE=
IF CONTADOR==1 (goto 1) else goto 3
:1
set CLAVE=
set CLAVE=%CLAVE%%CONTADOR2%
SET CLAVE=%CLAVE:37=Z%
SET CLAVE=%CLAVE:36=Y%
SET CLAVE=%CLAVE:35=X%
SET CLAVE=%CLAVE:34=W%
SET CLAVE=%CLAVE:33=V%
SET CLAVE=%CLAVE:32=U%
SET CLAVE=%CLAVE:31=T%
SET CLAVE=%CLAVE:30=S%
SET CLAVE=%CLAVE:29=R%
SET CLAVE=%CLAVE:28=Q%
SET CLAVE=%CLAVE:27=P%
SET CLAVE=%CLAVE:26=O%
SET CLAVE=%CLAVE:25=Ñ%
SET CLAVE=%CLAVE:24=N%
SET CLAVE=%CLAVE:23=M%
SET CLAVE=%CLAVE:22=L%
SET CLAVE=%CLAVE:21=K%
SET CLAVE=%CLAVE:20=J%
SET CLAVE=%CLAVE:19=I%
SET CLAVE=%CLAVE:18=H%
SET CLAVE=%CLAVE:17=G%
SET CLAVE=%CLAVE:16=F%
SET CLAVE=%CLAVE:15=E%
SET CLAVE=%CLAVE:14=D%
SET CLAVE=%CLAVE:13=C%
SET CLAVE=%CLAVE:12=B%
SET CLAVE=%CLAVE:11=A%
SET CLAVE=%CLAVE:10=0%
SET CLAVE=%CLAVE:9=9%
SET CLAVE=%CLAVE:8=8%
SET CLAVE=%CLAVE:7=7%
SET CLAVE=%CLAVE:6=6%
SET CLAVE=%CLAVE:5=5%
SET CLAVE=%CLAVE:4=4%
SET CLAVE=%CLAVE:3=3%
SET CLAVE=%CLAVE:2=2%
SET CLAVE=%CLAVE:1=1%
echo %CLAVE%
pause >nul
SET /A CONTADOR2=%CONTADOR2%+1
IF %CONTADOR2%==%CARACTERES% (goto 2) else goto 1
:2
SET /A CONTADOR=%CONTADOR%+1
goto 0
:3
SET /A CONTADOR3=1
SET CLAVE=%CLAVE% 1
SET /A CONTADOR3=%CONTADOR3%+1
SET /A CONTADOR4=%CONTADOR%+1
IF %CONTADOR3%==%CONTADOR4% (goto 4) else goto 3
:4
SET CLAVE2=%CLAVE:37=Z%
SET CLAVE2=%CLAVE2:36=Y%
SET CLAVE2=%CLAVE2:35=X%
SET CLAVE2=%CLAVE2:34=W%
SET CLAVE2=%CLAVE2:33=V%
SET CLAVE2=%CLAVE2:32=U%
SET CLAVE2=%CLAVE2:31=T%
SET CLAVE2=%CLAVE2:30=S%
SET CLAVE2=%CLAVE2:29=R%
SET CLAVE2=%CLAVE2:28=Q%
SET CLAVE2=%CLAVE2:27=P%
SET CLAVE2=%CLAVE2:26=O%
SET CLAVE2=%CLAVE2:25=Ñ%
SET CLAVE2=%CLAVE2:24=N%
SET CLAVE2=%CLAVE2:23=M%
SET CLAVE2=%CLAVE2:22=L%
SET CLAVE2=%CLAVE2:21=K%
SET CLAVE2=%CLAVE2:20=J%
SET CLAVE2=%CLAVE2:19=I%
SET CLAVE2=%CLAVE2:18=H%
SET CLAVE2=%CLAVE2:17=G%
SET CLAVE2=%CLAVE2:16=F%
SET CLAVE2=%CLAVE2:15=E%
SET CLAVE2=%CLAVE2:14=D%
SET CLAVE2=%CLAVE2:13=C%
SET CLAVE2=%CLAVE2:12=B%
SET CLAVE2=%CLAVE2:11=A%
SET CLAVE2=%CLAVE2:10=0%
SET CLAVE2=%CLAVE2:9=9%
SET CLAVE2=%CLAVE2:8=8%
SET CLAVE2=%CLAVE2:7=7%
SET CLAVE2=%CLAVE2:6=6%
SET CLAVE2=%CLAVE2:5=5%
SET CLAVE2=%CLAVE2:4=4%
SET CLAVE2=%CLAVE2:3=3%
SET CLAVE2=%CLAVE2:2=2%
SET CLAVE2=%CLAVE2:1=1%
SET CLAVE2=%CLAVE2: =%
echo %CLAVE2%
pause >nul
goto 5
Y ahora viene el problema. Ahora mismo el programa solo podria sacar correctamente las combinaciones de 1 caracter y la primera de dos, 11. Entonces en :5 tendria que separar la variable clave (Que tiene los numeros separados con espacios de esta manera: 1 1, para que no haya problemas al cambiar de numeros a caracteres) en varias variables que tengan el numero y su espacio, para poder operar con cada cifra por separado, y despues tendria que juntar las variables de nuevo en la variable clave. Para ello pense en usar un contador a la que se le va sumando uno, y meter variables dentro de variables. De esta manera, el programa separaria el numero en variables con una palabra fija y el numero del contador en ese ciclo [ 1 1(CLAVE)→ 1(CLAVESEPARADA1) 1(CLAVESEPARADA2)] y asi podria llamar facilmente a todas las variables, ya operadas y para que volviesen a la misma variable, con otro contador y otro ciclo. Pues ahi esta el problema, no se como llamar a las variables que tienen dentro una variable. Si hay algun error en el codigo o en la idea, agradeceria que lo dijeseis.
P.D.: Perdon por el codigo spaghetti.