Test Foro de elhacker.net SMF 2.1

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
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..

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
Cita de: xassiz en 16 Septiembre 2009, 17:50 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

Cita de: Novlucker en 16 Septiembre 2009, 17:55 PM
Ok, mi problema es que no leo  :rolleyes:

Me refiero a hacer una conversion de caracteres dependiendo de si es mayuscula o minuscula:

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
Cita de: xassiz en 16 Septiembre 2009, 17:58 PM
No es eso lo que busco xDD

Cita de: Novlucker en 16 Septiembre 2009, 17:55 PM
Ok, mi problema es que no leo  :rolleyes:

Me refiero a hacer una conversion de caracteres dependiendo de si es mayuscula o minuscula:

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


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:


set "variable=M.texto.m"


Y quiero que la variable quede así:

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 (dos) [Seleccionar]

@echo off
setlocal enabledelayedexpansion
:ini
set /p "txt=text: "
if not defined txt goto ini
set "h=0"
:HGP
set "text=%txt%"
set "txt2=!txt:~%h%,1!"
set /a h+=1
set "txt3=%txt3%txt2%"
::aqui tu cambio de mayusculas a minusculas q puede hacerse con for.
::ej: for %%a in (A B C D E F G H) do (if not "!txt2!"=="%%a" (
::set  text=!text:%txt2%=%%a)
::)
if "%txt3%"=="%txt%" goto fin
goto:HGP

:fin
echo %txt% es: %text%
pause>nul



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..


@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
Cita de: Guerrerohgp en 16 Septiembre 2009, 22:20 PM
Código (dos) [Seleccionar]

::aqui tu cambio de mayusculas a minusculas q puede hacerse con for.
::ej: for %%a in (A B C D E F G H) do (if not "!txt2!"=="%%a" (
::set  text=!text:%txt2%=%%a)
::)


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





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:


@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
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



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 (dos) [Seleccionar]
@echo off
title ayuda para xassiz&color f0
setlocal enabledelayedexpansion
:ini
set /p "txt=text: "
if not defined txt goto ini
set "h=0"
:HGP
set "text=%txt%"&set "txt2=!txt:~%h%,1!"
set /a h+=1&set "txt3=%txt3%%txt2%"
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
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!"=="%%a" set "ft=!ft!!x!")
if "%txt3%"=="%txt%" goto fin
goto:HGP
:fin
echo %txt% es: %ft%
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