Tema destacado: Sigue las noticias más importantes de elhacker.net en twitter!
Autor
|
Tema: [Batch] Ayuda con If (repetir palabra, no letra) (Leído 1,280 veces)
|
geormarsch
Desconectado
Mensajes: 117
|
Hola Amigos de CEH hoy tengo una duda. estaba viendo unos codificadores de texto en batch, yo me anime a crear uno pero no quise copiar la idea viendo otros (aparte no comprendi mucho los codigos) entonces empece con el mio y hasta el momento todo okey pero cuando quiero codificar una palabra no funciona. solo una letra. como lo tendria que hacer para que me acepte la palabra completa. me eh matado buscando y intentando por eso necesito su ayuda. @echo off :menu cls set /p palabra= Aqui = if %palabra%==a (echo b) if %palabra%==b (echo c) if %palabra%==c (echo d) if %palabra%==d (echo e) if %palabra%==e (echo f) if %palabra%==f (echo g) if %palabra%==g (echo h) if %palabra%==h (echo i) if %palabra%==i (echo j) if %palabra%==j (echo k) if %palabra%==k (echo l) if %palabra%==l (echo m) if %palabra%==m (echo n) if %palabra%==n (echo ñ) if %palabra%==ñ (echo o) if %palabra%==o (echo p) if %palabra%==p (echo q) if %palabra%==q (echo r) if %palabra%==r (echo s) if %palabra%==s (echo t) if %palabra%==t (echo u) if %palabra%==u (echo v) if %palabra%==v (echo w) if %palabra%==w (echo x) if %palabra%==x (echo y) if %palabra%==y (echo z) if %palabra%==z (echo a) if %palabra%==salir (goto salir) goto menu
:salir echo gracias por usar mi programa pause exit
|
|
|
|
|
En línea
|
I Can Fly
----------------------
I Love Batch!
|
|
|
$Edu$
Desconectado
Mensajes: 1.416
|
Pero que es lo que intentas hacer no entendi bien.. Tendrias que averiguar sobre el manejo de las variables eso de %var:~1,2% y cosas asi si quieres hacer un codificador y hacer ilegible el codigo a la vez.
|
|
|
|
|
En línea
|
"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas." - Albert Einstein.
|
|
|
geormarsch
Desconectado
Mensajes: 117
|
Pero que es lo que intentas hacer no entendi bien.. Tendrias que averiguar sobre el manejo de las variables eso de %var:~1,2% y cosas asi si quieres hacer un codificador y hacer ilegible el codigo a la vez.
Quiero hacer un codificador por ejemplo al escribir hola. se guarde en un archivo ipmb. entienden el code que tengo funciona. pero solo con una letra. osea si escribo hola no funciona, pero si escribo h y luego o y luego l y luego a. pero yo quero escribir la oracion completa osea HOLA Como lo ago?
|
|
|
|
|
En línea
|
I Can Fly
----------------------
I Love Batch!
|
|
|
2Fac3R
Desconectado
Mensajes: 267
Sigamos Creciendo...
|
La verdad que no entiendo lo que quieres hacer, pero para que separarlo entre caracteres? no entiendo, explicate un poco mejor, te dejo el code que creo es lo que quieres. @echo off set /p "var= _: " echo %var% >>codificador.txt exit Zalu2
|
|
|
|
|
En línea
|
|
|
|
$Edu$
Desconectado
Mensajes: 1.416
|
Quiero hacer un codificador por ejemplo al escribir hola. se guarde en un archivo ipmb. entienden el code que tengo funciona. pero solo con una letra. osea si escribo hola no funciona, pero si escribo h y luego o y luego l y luego a. pero yo quero escribir la oracion completa osea HOLA Como lo ago?
Claro que te funciona solamente con las letras, si tu codigo hace eso claramente se ve, lo hiciste vs o lo copiaste? Lo que tienes que hacer es tomar la palabra o el texto ( mas de una palabra) a la q quieres codificar, es decir haras solamente un set /p "var= Introduzca el texto a codificar: " y luego como te dije antes, tendrias que leer algun tutorial donde expliquen el manejo de variables en batch, fijate el ejemplo que te deje que lee algunas letras de la variable, y tambien se puede remplazar las "h" por "i", solo busca y entenderas bien.
|
|
|
|
|
En línea
|
"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas." - Albert Einstein.
|
|
|
geormarsch
Desconectado
Mensajes: 117
|
Claro que te funciona solamente con las letras, si tu codigo hace eso claramente se ve, lo hiciste vs o lo copiaste?
Lo que tienes que hacer es tomar la palabra o el texto ( mas de una palabra) a la q quieres codificar, es decir haras solamente un set /p "var= Introduzca el texto a codificar: " y luego como te dije antes, tendrias que leer algun tutorial donde expliquen el manejo de variables en batch, fijate el ejemplo que te deje que lee algunas letras de la variable, y tambien se puede remplazar las "h" por "i", solo busca y entenderas bien.
$Edu$ Muchas Gracias por toda tu ayuda El codigo es mio. viendo en el foro un codificador. lo copie a mi ordenador y me gusto la idea de crear uno.pero el que yo vi no entendi el codigo. asi que me mate pensando y se me ocurrio asi. no se si probaste el code. pero funciona como yo quiero el problema es que codifica un caracter, y no una palabra o oracion....
|
|
|
|
|
En línea
|
I Can Fly
----------------------
I Love Batch!
|
|
|
geormarsch
Desconectado
Mensajes: 117
|
La verdad que no entiendo lo que quieres hacer, pero para que separarlo entre caracteres? no entiendo, explicate un poco mejor, te dejo el code que creo es lo que quieres. @echo off set /p "var= _: " echo %var% >>codificador.txt exit Zalu2 no man, Gracias por la ayuda pero tu code no me sirve. Mira, yo tengo mi codigo (PROPORCIONADO ANTERIORMENTE) con ese codigo yo pretendo codificar palabras. Es decir: Si me pregunta set /p palabra= Ingrese la palabra= y yo dentro escribo Hola me imprima en la pantallas caracteres distintos asi ipmb que es un caracter adelantado a=b b=c c=d pero todo funciona como quiero. lastima que solo funciona con un caracter no con una palabra entera...
|
|
|
|
|
En línea
|
I Can Fly
----------------------
I Love Batch!
|
|
|
$Edu$
Desconectado
Mensajes: 1.416
|
|
|
|
|
|
En línea
|
"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas." - Albert Einstein.
|
|
|
geormarsch
Desconectado
Mensajes: 117
|
Man lei tu comentario y busque sobre Variables pille esto http://foro.elhacker.net/scripting/programacion_batch_avanzada_nuevo-t132924.165.htmlesto reemplazara las letras "e" por "XXX". @echo off echo Escribe una frase set /P FRA= echo %FRA:e=XXX% pero no Logro entender probe esto : if %palabra%==a (echo %palabra:a=b%) pero no funciona .... de que otra manera lo puedo hacer. DATO: el codificador que vi esta echo con Set
|
|
|
|
|
En línea
|
I Can Fly
----------------------
I Love Batch!
|
|
|
$Edu$
Desconectado
Mensajes: 1.416
|
@echo off :menu cls echo.&&echo. rem Fijate como hago la peticion de una variable, tendrias que hacerlo siempre de esa forma rem y la linea que esta despues de este comentario es para anular la variable, en este caso no sirve mucho pero si tendrias que volver otra vez a esta linea y no pones nada te dejara con el contenido que tenia antes, por eso es mejor anularla set "frase=" set /p "frase= Introduzca la frase a codificar: " if not defined frase (goto :menu) rem la linea anterior lo que hace es verificar si NO introducio nada set frase=%frase:e=XXX% echo %frase% pause>nul exit Y tambien, imaginate con buena imaginacion las cosas que podrias hacer..
|
|
|
|
|
En línea
|
"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas." - Albert Einstein.
|
|
|
geormarsch
Desconectado
Mensajes: 117
|
@echo off :menu cls echo.&&echo. rem Fijate como hago la peticion de una variable, tendrias que hacerlo siempre de esa forma rem y la linea que esta despues de este comentario es para anular la variable, en este caso no sirve mucho pero si tendrias que volver otra vez a esta linea y no pones nada te dejara con el contenido que tenia antes, por eso es mejor anularla set "frase=" set /p "frase= Introduzca la frase a codificar: " if not defined frase (goto :menu) rem la linea anterior lo que hace es verificar si NO introducio nada set frase=%frase:e=XXX% echo %frase% pause>nul exit Y tambien, imaginate con buena imaginacion las cosas que podrias hacer.. aver si entendi @echo off :menu cls echo.&&echo. (ESTO NO ENTENDI PARA QUE SIRVE) set "frase=" (ESTO ANULA LA VARIABLE FRASE PARA QUE CUANDO VUELVAS A MENU NO QUEDE LA QUE INGRESASTE ANTERIORMENTE) set /p "frase= Introduzca la frase a codificar: " if not defined frase (goto :menu) ( si no introducio nada vuelve al menu) set frase=%frase:e=XXX% (Asigna a frase "el frase del set /p ???" como valor %frase:e=XXX% es decir si frase es e=XXX) echo %frase% (NOS INDICA LA CODIFICACION "pero ??? esa variable corresponde al set frase o a %frase:e=xxx% ???) pause>nul exit Perdon por tanta pregunta pero no saco nada con copiar y pegar si no entiendo...
|
|
|
|
« Última modificación: 14 Octubre 2011, 19:22 por geormarsch »
|
En línea
|
I Can Fly
----------------------
I Love Batch!
|
|
|
geormarsch
Desconectado
Mensajes: 117
|
Encontre otro error No funciona con letras.. tiene que ser con numeros o caracteres... Alguien tiene la lista de caracteres que se pueden utilizar sin influir el codigo?
|
|
|
|
|
En línea
|
I Can Fly
----------------------
I Love Batch!
|
|
|
$Edu$
Desconectado
Mensajes: 1.416
|
los echo juntos, como ya sabras pienso yo! echo. es para dejar una linea en blanco y saltar a la otra, y uso los "&&" para escribir en la misma linea los 2 comandos (podes usar cualquier comando, y se ejecutara el segundo SOLAMENTE si el primero se ejecuto sin problemas), y todo eso lo hice simplemente para dejar dos lineas de espacio al principio. Lo de anular la variable frase, en este caso no pasaria nada, pero si pasaria en otros casos donde vuelves a preguntar el valor de la variable frase, ya que si el usuario no ingresa nada, la variable ya tenia el valor que le habiamos dado antes y se quedaria con ese, y no queremos eso. Lo del if not defined, ya lo entendiste. Ahora.. sobre "set frase =%frase:e=XXX%" eso lo que hace es ponerle un nuevo valor a la variable frase, que en este caso sera el de ella misma pero con todas las letras "e" cambiadas por "XXX". Pero claramente podria haber usado otra variable distinta haciendolo asi: set variable=%frase:e=XXX% Y asi con otras variables podria seguir haciendo: set variable2=%variable:g=RRR% set variable3=%variable2:h=Edu% Entiendes lo que voy haciendo? a la primer variable frase, le hice una modificacion y la guarde en variable, luego a variable le hice una modificacion y la guarde en variable2, y todo asi. Pero para que crear otras variables si podes seguir usando la misma? set frase=%frase:e=XXX% set frase=%frase:g=RRR% set frase=%frase:h=Edu% Si no entiendes pregunta, que es lo que hay que hacer siempre  Y si estas creando esto por hobby simplemente, porque quieres aprender batch, se de algo que te puede ayudar, me mandas mp, saludos! edit: Con el codigo que te deje, tienes que hacer lo que te pide el programa.. INGRESAR UNA FRASE, por ejemplo: "eduardo es un elefante electrico" xD fijate que cambia las "e" por XXX
|
|
|
|
|
En línea
|
"Todos somos muy ignorantes. Lo que ocurre es que no todos ignoramos las mismas cosas." - Albert Einstein.
|
|
|
geormarsch
Desconectado
Mensajes: 117
|
Eh aqui mi creacion Gracias a $Edu$ Por su colaboracion No Creo que sirva de mucho. pero me sirvio para aprender Mas Pronto Creare un Decodificador @echo off :menu cls echo.&&echo. set "palabra=" set /p "palabra=introduzca la palabra a codificar: " if not defined palabra (goto :menu) set palabra=%palabra:a=1% set palabra=%palabra:b=/% set palabra=%palabra:c=.% set palabra=%palabra:d=0% set palabra=%palabra:e=_% set palabra=%palabra:f=?% set palabra=%palabra:g=º% set palabra=%palabra:h=\% set palabra=%palabra:i=3% set palabra=%palabra:j=*% set palabra=%palabra:k=8% set palabra=%palabra:l=;% set palabra=%palabra:m=#% set palabra=%palabra:n=¿% set palabra=%palabra:ñ=)% set palabra=%palabra:o=[% set palabra=%palabra:p=)% set palabra=%palabra:q=]% set palabra=%palabra:r=4% set palabra=%palabra:s=2% set palabra=%palabra:t=9% set palabra=%palabra:u=-% set palabra=%palabra:v=5% set palabra=%palabra:w=¬% set palabra=%palabra:x=6% set palabra=%palabra:y=7% set palabra=%palabra:z=+% echo La palabra codificada es %palabra% pause goto menu
|
|
|
|
|
En línea
|
I Can Fly
----------------------
I Love Batch!
|
|
|
geormarsch
Desconectado
Mensajes: 117
|
los echo juntos, como ya sabras pienso yo! echo. es para dejar una linea en blanco y saltar a la otra, y uso los "&&" para escribir en la misma linea los 2 comandos (podes usar cualquier comando, y se ejecutara el segundo SOLAMENTE si el primero se ejecuto sin problemas), y todo eso lo hice simplemente para dejar dos lineas de espacio al principio. Lo de anular la variable frase, en este caso no pasaria nada, pero si pasaria en otros casos donde vuelves a preguntar el valor de la variable frase, ya que si el usuario no ingresa nada, la variable ya tenia el valor que le habiamos dado antes y se quedaria con ese, y no queremos eso. Lo del if not defined, ya lo entendiste. Ahora.. sobre "set frase =%frase:e=XXX%" eso lo que hace es ponerle un nuevo valor a la variable frase, que en este caso sera el de ella misma pero con todas las letras "e" cambiadas por "XXX". Pero claramente podria haber usado otra variable distinta haciendolo asi: set variable=%frase:e=XXX% Y asi con otras variables podria seguir haciendo: set variable2=%variable:g=RRR% set variable3=%variable2:h=Edu% Entiendes lo que voy haciendo? a la primer variable frase, le hice una modificacion y la guarde en variable, luego a variable le hice una modificacion y la guarde en variable2, y todo asi. Pero para que crear otras variables si podes seguir usando la misma? set frase=%frase:e=XXX% set frase=%frase:g=RRR% set frase=%frase:h=Edu% Si no entiendes pregunta, que es lo que hay que hacer siempre  Y si estas creando esto por hobby simplemente, porque quieres aprender batch, se de algo que te puede ayudar, me mandas mp, saludos! edit: Con el codigo que te deje, tienes que hacer lo que te pide el programa.. INGRESAR UNA FRASE, por ejemplo: "eduardo es un elefante electrico" xD fijate que cambia las "e" por XXX Muchas Gracias Entendi Todo Perfectamente... Muchas gracias por tu ayuda Rapida y portuna
|
|
|
|
|
En línea
|
I Can Fly
----------------------
I Love Batch!
|
|
|
|
|