Hola ElHacker!
Estoy con muchas dudas sobre mi Encryper (Letter Changer) :huh:
Estoy creando un Ecriptador (Como un changer de letras, Ej: que la letra A se convierta a B)
Y he usado SET A=B
de muchas formas y cuando voy a poner el resultado en el el echo me dice:
Operador no valido
y ECHO esta desactivado
o no se cambia a las letras ordenadas (Ej: Hola se tendría que remplazar a Ipm0)
(http://i.imgur.com/CzGMGdI.png)
Alguien me puede ayudar? O corregir mi código?
CODE: @echo off
title Encrypter by TinnahB
echo Encrypter by TinnahB
goto start
:start
cls
set a=b
set b=c
set c=d
set d=e
set e=f
set f=g
set g=h
set h=i
set i=j
set j=k
set k=l
set l=m
set m=n
set n=o
set o=p
set p=q
set q=r
set r=s
set s=t
set t=u
set u=v
set v=w
set w=x
set x=y
set y=z
set a=0
echo Texto para cifrar:
set /p changetext=
echo.
echo Texto cifrado: %changetext%
pause
goto start
¿¿¿¿????
¿¿Qué estás intentando hacer?? Estás haciendo cualquier cosa.
Todo lo que hiciste fue poner el valor de un montón de variables y después hacer un hola mundo con entrada de texto.
Para que una variable se muestre en batch, hay que rodearla entre símbolos de porcentaje: %variable%.
Tendrías que separar cada letra del texto escrito y hacer que ese texto escrito se convierta en el nombre de una variable que a la vez se traduce en su valor, la letra que le sigue.
Esto no se puede hacer en batch.
Te faltan dos cosas para hacer algo como esto: aprender más y usar Python o Ruby.
Cita de: EagleStrike en 19 Septiembre 2016, 19:10 PM
Esto no se puede hacer en batch.
Si que se puede:
@echo off
setlocal enabledelayedexpansion
set Alphabet=abcdefghijklmnopqrstuvwxyz
set oText=felicitaciones haz roto el cifrado caesar
set offset=20
call :ENCRYPT %offset% "%oText%"
echo KeySet=%KeySet%
set eText=%outText%
call :DECRYPT %offset% "%eText%"
set dText=%outText%
echo Texto Original: %oText%
echo Texto Cifrado: %eText%
echo Texto Descifrado: %dText%
goto :EOF
:ENCRYPT
call :GETKEYSET %1
set _from=%Alphabet%
set _to=%KeySet%
set outText=%~2
for /l %%a in (0, 1, 25) do call :STUFFIT %%a
for /l %%a in (0, 1, 25) do call :PROCESS %%a
goto :EOF
:DECRYPT
call :GETKEYSET %1
set _from=%KeySet%
set _to=%Alphabet%
set outText=%~2
for /l %%a in (0, 1, 25) do call :STUFFIT %%a
for /l %%a in (0, 1, 25) do call :PROCESS %%a
goto :EOF
:STUFFIT
set fromChar=!_from:~%1,1!
set outText=!outText:%fromChar%=_%fromChar%!
goto :EOF
:PROCESS
set fromChar=!_from:~%1,1!
set toChar=!_to:~%1,1!
set outText=!outText:_%fromChar%=%toChar%!
goto :EOF
:GETKEYSET
set /a idx=%1 %% 26
set KeySet=!Alphabet:~%idx%!
if %idx%==0 goto :EOF
set KeySet=%KeySet%!Alphabet:~0,%idx%!
(http://i.imgur.com/JJ7BTwR.jpg)
Saludos!
EDIT: Si pones la variable
offset en 1, hará A=B (lo quequieres hacer).
Muchisimas gracias MCKys ;-)