Foro de elhacker.net

Programación => Scripting => Mensaje iniciado por: xassiz_ en 16 Septiembre 2009, 17:50 pm



Título: {Resuelto} [Batch Help!] ayuda con conversion de caracteres..
Publicado por: xassiz_ en 16 Septiembre 2009, 17:50 pm
Código:
set "variable=%variable:a=1%"
set "variable=%variable:A=2%"

Ok, mi problema es para diferenciar mayúsculas de minusculas. Hay alguna forma?

Pense con un IF..
Código:
if ["%variable%"]==["a"] (set "variable=%variable:a=1%")
if ["%variable%"]==["A"] (set "variable=%variable:A=2%")

Pero si el contenido de %variable% tiene mas de un caracter ya no serviría..


Ahora mismo se me ocurrio hacer algo con findstr pero nunca lo supe utilizar bien..


Título: Re: [Batch Help!] ayuda con conversion de caracteres..
Publicado por: Novlucker en 16 Septiembre 2009, 17:55 pm
Ok, mi problema es que no busco  :rolleyes:

Algunos post más abajo:
http://foro.elhacker.net/scripting/como_convertir_mayusculas_a_minusculas_y_viceversa_en_batch_ayuda-t267187.0.html

Saludos


Título: Re: [Batch Help!] ayuda con conversion de caracteres..
Publicado por: xassiz_ en 16 Septiembre 2009, 17:58 pm
No es eso lo que busco xDD

Ok, mi problema es que no leo  :rolleyes:

Me refiero a hacer una conversion de caracteres dependiendo de si es mayuscula o minuscula:
Código:
set "variable=%variable:a=1%"
set "variable=%variable:A=2%"

::no funciona porque la cmd lee igual "a" que "A"


EDITO: creo que al final tendré que meter cada letra en una variable u.u


Título: Re: [Batch Help!] ayuda con conversion de caracteres..
Publicado por: 0x5d en 16 Septiembre 2009, 20:47 pm
No es eso lo que busco xDD

Ok, mi problema es que no leo  :rolleyes:

Me refiero a hacer una conversion de caracteres dependiendo de si es mayuscula o minuscula:
Código:
set "variable=%variable:a=1%"
set "variable=%variable:A=2%"

::no funciona porque la cmd lee igual "a" que "A"
EDITO: creo que al final tendré que meter cada letra en una variable u.u

Código:
set "name=Jsvier"
set name=%name:s=a%
echo %name%
Eso reemplaza la s por a y daria Javier, haz lo mismo.

Saludos.


Título: Re: [Batch Help!] ayuda con conversion de caracteres..
Publicado por: xassiz_ en 16 Septiembre 2009, 20:56 pm
Eso lo sabía hacer hace 5 años.. leed antes de responder!!


Si lees detenidamente el post, te enterarás.  Vuelvo a explicar:

Código:
set "variable=M.texto.m"

Y quiero que la variable quede así:
Código:
set "variable=1.texto.2"

Es decir, set no distingue entre mayúsculas y minúsculas.

Pero yo quiero distinguir, ese es el problema.

La unica solucion, es medir la longitud de la variable, y luego meter cada caracter en una variable.

Luego al tener los caracteres separados podré compararlos con un if.


Título: Re: [Batch Help!] ayuda con conversion de caracteres..
Publicado por: Guerrerohgp en 16 Septiembre 2009, 22:20 pm
bueno compa.
Desde mi punto de vista lo q creo puedes hacer es activar la variables retrasadas,
meter el texto en una variable, extraer el primer caracter, crear otra variable donde se vuelvan a agregar los caracteres para q el bucle no sea infinito, hacer la comprobacion de caracteres con if dentro de el bucle y fianlmente ir al final del code XD.
ej:
Código
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. :ini
  4. set /p "txt=text: "
  5. if not defined txt goto ini
  6. set "h=0"
  7. :HGP
  8. set "text=%txt%"
  9. set "txt2=!txt:~% style="color: #448888;">h%,1!"
  10. set /a h+=1
  11. set "txt3=%txt3%txt2%"
  12. ::aqui tu cambio de mayusculas a minusculas q puede hacerse con for.
  13. ::ej: for %%a in (A B C D E F G H) do (if not "!txt2!"=="%%a" (
  14. ::set  text=!text:%txt2%=%%a)
  15. ::)
  16. if "%txt3%"=="%txt%" goto fin
  17. goto:HGP
  18.  
  19. :fin
  20. echo %txt% es: %text%
  21. pause>nul
  22.  


esa seria la idea, jiji un code vale mas q mil palabras.

espero haberte ayudado.

la ota opcion es hacer el bucle con el for pero con esto bastaria. creo q fue tu idea desde el principio no?

saludox
pd: no termino  el code ni lo dejo funcional por q es tu trabajo no? jiji


Título: Re: [Batch Help!] ayuda con conversion de caracteres..
Publicado por: xassiz_ en 16 Septiembre 2009, 23:49 pm
A ver, no quiero hacer un cambio de mayusculas a minusculas!! Para eso se haría mas facil asi..

Código:
@echo off
setlocal enabledelayedexpansion
set "texto=hola"
for %%_ in (A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z) do (set "texto2=!texto:%%_=%%_!")
echo.Antes: %texto%
echo.Despues: %texto2%
pause
exit


Quiero diferenciar los caracteres en mayuscula de minuscula!!


Título: Re: [Batch Help!] ayuda con conversion de caracteres..
Publicado por: Guerrerohgp en 17 Septiembre 2009, 03:27 am
Perdon, me equivoque, si entendi tu idea, lo k paso fue q especifique mal devi poner  envez de
Código
  1. ::aqui tu cambio de mayusculas a minusculas q puede hacerse con for.
  2. ::ej: for %%a in (A B C D E F G H) do (if not "!txt2!"=="%%a" (
  3. ::set  text=!text:%txt2%=%%a)
  4. ::)
  5.  

devi de poner
Código
  1. ::aqui detectas las mayusculas de minusculas que puedes hacer con for
  2. ::ej: for %%a in (A B C D E F G H) do (if not "!txt2!"=="%%a" (
  3. ::tu cambio)
  4. ::)




Creo k fue por eso q lo puse en comentario y no como code completo  ;D ;D
lo de mayusculas y minusculas como lo pones jeje se hace de diversas maneras.xD ;-)

pero bueno perdon por la xvocacion. ::) ::) ::)

Suerte con tu proyect!!



Título: Re: [Batch Help!] ayuda con conversion de caracteres..
Publicado por: xassiz_ en 17 Septiembre 2009, 13:47 pm
Gracias, pero al final desarrollé esto (http://foro.elhacker.net/scripting/funcion_lenght_efecto_by_xassiz-t267758.0.html) que me sirve perfectamente ^^

;)



EDITO:

Pues al final no es tan facil como esperaba.. no se porque no me funciona esto:

Código:
@echo on
setlocal enabledelayedexpansion
:main
cls
set/p "texto=String>> "
set/a cont=0
call :lenght
cls
set "string=%texto%"
for /l %%_ in (1,1,%cont%) do (
if ["!let[%%_]!"]==["A"] (set "string=%string:A=1%")
if ["!let[%%_]!"]==["B"] (set "string=%string:B=2%")
if ["!let[%%_]!"]==["C"] (set "string=%string:C=3%")
if ["!let[%%_]!"]==["D"] (set "string=%string:D=4%")
if ["!let[%%_]!"]==["a"] (set "string=%string:a=5%")
if ["!let[%%_]!"]==["b"] (set "string=%string:b=6%")
if ["!let[%%_]!"]==["c"] (set "string=%string:c=7%")
if ["!let[%%_]!"]==["d"] (set "string=%string:d=8%")
)
echo.%texto%
echo.
echo.%string%
pause
exit
:lenght
set "var=!texto:~%cont%,1!"
if not defined var (goto:eof)
set/a cont+=1
set "let[%cont%]=%var%"
goto:lenght

Si introduzco abcd la salida debería ser 5678, y si introduzco ABCD debería ser 1234.


Porque no distingue mayus. de minus.??


Lo peor, es que tampoco funciona sin distinguir Y_Y


Título: Re: {NO Resuelto} [Batch Help!] ayuda con conversion de caracteres..
Publicado por: Guerrerohgp en 18 Septiembre 2009, 18:42 pm
bueno,  pok no solo envias a cifrar un caracter a le vez, si estubiste intentando seguro te diste cuenta q si los cambias te dara diferente, prueva cada letra.

ej:
abres tu script y ingresas a
te dara 5 y si ingresas A te dara 1, solucion enviar uno por uno. ;D
suerte.!!!


Título: Re: {NO Resuelto} [Batch Help!] ayuda con conversion de caracteres..
Publicado por: xassiz_ en 18 Septiembre 2009, 21:05 pm
Código:
setlocal enabledelayedexpansion
:main
set "string="
set /p "string=string: "
if not defined string goto main
set "output="
set "count=0"
:loop
if "!string:~%count%,1!" neq "" (
set "char=!string:~%count%,1!"
if "!char!" equ "A" set "output=!output!0"
if "!char!" equ "B" set "output=!output!1"
if "!char!" equ "C" set "output=!output!2"
if "!char!" equ "D" set "output=!output!3"
if "!char!" equ "E" set "output=!output!4"
if "!char!" equ "a" set "output=!output!5"
if "!char!" equ "b" set "output=!output!6"
if "!char!" equ "c" set "output=!output!7"
if "!char!" equ "d" set "output=!output!8"
if "!char!" equ "e" set "output=!output!9"
set /a "count+=1"
goto loop
)
echo output: !output!
goto main


Código:
string: ABCDEabcde
output: 0123456789

Generosidad de Matt ::)


Título: Re: {NO Resuelto} [Batch Help!] ayuda con conversion de caracteres..
Publicado por: Guerrerohgp en 18 Septiembre 2009, 21:08 pm
Vuelvo, pero como veo q no quisiste usar mi code te lo muestro. :D

jiji, esq durante un tiempo estuve bregando con la encriptacion batch y esos problemas ya los pase.

te dejo el code de mas arriba pero esta vez funcional.

disculpa si no lo postee hace rato pero la uni me tiene loco  ;)

ya te lo dejo funcinal
Código
  1. @echo off
  2. title ayuda para xassiz&color f0
  3. setlocal enabledelayedexpansion
  4. :ini
  5. set /p "txt=text: "
  6. if not defined txt goto ini
  7. set "h=0"
  8. :HGP
  9. set "text=%txt%"&set "txt2=!txt:~% style="color: #448888;">h%,1!"
  10. set /a h+=1&set "txt3=%txt3%%txt2%"
  11. set "x=0"&for %%a in (A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
  12. a b c d e f g h i j k l m n o p q r s t u v w x y z) do (set /a "x+=1"&if "!txt2!"=="%% style="color: #448888;">a" set "ft=!ft!!x!")
  13. if "%txt3%"=="%txt%" goto fin
  14. goto:HGP
  15. :fin
  16. echo %txt% es: %ft%
  17. pause>nul

por si las moscas y quieres cifrar el espacio, yo lo convertia a _ y en el momento de la desencriptacion lo reconvertia en " ".

repito
SUERTE!!!  ;D ;D ;D


Título: Re: {Resuelto} [Batch Help!] ayuda con conversion de caracteres..
Publicado por: xassiz_ en 18 Septiembre 2009, 21:28 pm
bue gracias xD No veia la manera ;D


Título: Re: {Resuelto} [Batch Help!] ayuda con conversion de caracteres..
Publicado por: Guerrerohgp en 18 Septiembre 2009, 21:35 pm
No esta bien. no somos perfectos devi de ponerte el code de primero pero apuesto a q aprendiste mas intentando q a q cuando te lo puse.

la vida es asi. suerte.
saludOCX