elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [AYUDA] [BATCH] Problemita con sustitución de caracteres...
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: [AYUDA] [BATCH] Problemita con sustitución de caracteres...  (Leído 1,884 veces)
.:Xx4NG3LxX:.

Desconectado Desconectado

Mensajes: 200


¿Aún no estás registrad@? ¿Qué esperas?


Ver Perfil WWW
[AYUDA] [BATCH] Problemita con sustitución de caracteres...
« en: 17 Febrero 2020, 23:22 pm »

Hola, tengo un problema (del cual no sé la causa) con respecto a la sustitución de caracteres. No coloco el código, porque me enoje, y lo borré, pero, era algo así...

Código
  1. @echo off
  2. set bloq_mayus=off
  3. set "word=mundo"
  4.  
  5. if %bloq_mayus%==on (
  6. set word=%word:a=A%
  7. set word=%word:b=B%
  8. set word=%word:c=C%
  9. ::etc...
  10. echo %word%
  11. pause>nul
  12. )
  13.  
  14. echo %word%
  15. pause>nul
  16.  

Y… no sé porque no funciona...

Gracias por su atención!


« Última modificación: 22 Febrero 2020, 16:14 pm por .:Xx4NG3LxX:. » En línea

"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"


EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 1.792



Ver Perfil
Re: [AYUDA] [BATCH] Problemita con sustitución de caracteres...
« Respuesta #1 en: 18 Febrero 2020, 00:32 am »

Saludos,

- Las variables no se actualizan dentro de bloques For y IF, solo al finalizar el bloque las variables se actualizan. Para forzar la actualización o expansión de variables se usa SetLocal EnableDelayedExpansion y usar !variable! en lugar de %variable%, esto hasta que uses SetLocal DisableDelayedExpansion para que todo vuelva a como es por defecto.
Código
  1. @Echo off
  2. Set bloq_mayus=on
  3. Set word=hola mundo cruel
  4. If %bloq_mayus%==on (
  5.  SetLocal EnableDelayedExpansion
  6.  Set word=!word:a=A!
  7.  Set word=!word:b=B!
  8.  Set word=!word:c=C!
  9.  Set word=!word:d=D!
  10.  Set word=!word:e=E!
  11.  Set word=!word:f=F!
  12.  Set word=!word:g=G!
  13.  Set word=!word:h=H!
  14.  Set word=!word:i=I!
  15.  Set word=!word:j=J!
  16.  Set word=!word:k=K!
  17.  Set word=!word:l=L!
  18.  Set word=!word:m=M!
  19.  Set word=!word:n=N!
  20.  Set word=!word:o=O!
  21.  Set word=!word:p=P!
  22.  Set word=!word:q=Q!
  23.  Set word=!word:r=R!
  24.  Set word=!word:s=S!
  25.  Set word=!word:t=T!
  26.  Set word=!word:u=U!
  27.  Set word=!word:v=V!
  28.  Set word=!word:w=W!
  29.  Set word=!word:x=X!
  30.  Set word=!word:y=Y!
  31.  Set word=!word:z=Z!
  32.  Echo !word!
  33.  SetLocal DisableDelayedExpansion
  34. )
  35.  


En línea

.:Xx4NG3LxX:.

Desconectado Desconectado

Mensajes: 200


¿Aún no estás registrad@? ¿Qué esperas?


Ver Perfil WWW
Re: [AYUDA] [BATCH] Problemita con sustitución de caracteres...
« Respuesta #2 en: 18 Febrero 2020, 12:27 pm »

 :o  :o Tan fácil era? Es enserio? Wow, muchísimas gracias... Ojala te pudiera dar algo en compensación por tu ayuda. De verdad, gracias...

Pero, tengo otro problema con la sustitución (de este si sé la causa [creo] pero no la solución)... Después la posteo, ahora me tengo que ir al Liceo xDD
« Última modificación: 18 Febrero 2020, 12:30 pm por .:Xx4NG3LxX:. » En línea

"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"


.:Xx4NG3LxX:.

Desconectado Desconectado

Mensajes: 200


¿Aún no estás registrad@? ¿Qué esperas?


Ver Perfil WWW
Re: [AYUDA] [BATCH] Problemita con sustitución de caracteres...
« Respuesta #3 en: 20 Febrero 2020, 15:12 pm »

Volví. Perdón por la ausencia...

... Bien, mi otro problema es el siguiente:

Tengo un bat y su función es cambiar cada letra por otra. Tengo una manera específica de cambiar las letras; cada letra será transformada a la letra que le antecede, es decir:

a=z ; b=a ; c=b ; y así sucesivamente.

He aqui el código de ejemplo

Código
  1. @echo off
  2. set word=hola
  3. echo %word%
  4. set word=%word:a=z%
  5. set word=%word:b=a%
  6. set word=%word:c=b%
  7. set word=%word:d=c%
  8. ::etc...
  9. echo %word%
  10. pause>nul
  11. goto :eof
  12.  

La salida deberia ser gnkz. Pero no lo es. Sé cual es el fallo, pero no sabría explicarlo. Mi pregunta es: ¿Se puede hacer funcionar?
En línea

"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"


**Aincrad**


Desconectado Desconectado

Mensajes: 573



Ver Perfil WWW
Re: [AYUDA] [BATCH] Problemita con sustitución de caracteres...
« Respuesta #4 en: 21 Febrero 2020, 01:47 am »

La salida es Perfectamente "gnkz" , no hay ningun error.



En línea



.:Xx4NG3LxX:.

Desconectado Desconectado

Mensajes: 200


¿Aún no estás registrad@? ¿Qué esperas?


Ver Perfil WWW
Re: [AYUDA] [BATCH] Problemita con sustitución de caracteres...
« Respuesta #5 en: 21 Febrero 2020, 02:02 am »

La salida es Perfectamente "gnkz" , no hay ningun error.

Es cierto, pero intenta con otras palabras
En línea

"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"


EdePC
Moderador Global
***
Desconectado Desconectado

Mensajes: 1.792



Ver Perfil
Re: [AYUDA] [BATCH] Problemita con sustitución de caracteres...
« Respuesta #6 en: 21 Febrero 2020, 02:59 am »

- Yo tampoco he tenido problemas. He estado buscando algún depurador para Bacth y veo que que "puros" no hay XD, es decir, los que he probado tienen su propio intérprete y eso es trampa, además no funcionaría igual con el intérprete del propio windows cmd.exe

- A lo sumo he hallado un software viejito: Running Steps, pero ya no está disponible en su página web, aunque se le puede descargar desde la Web Archive: https://web.archive.org/web/20121124131638if_/http://steppingsoftware.com/ssportal/downloads/Setup_RS1.exe

- Aquí unos videos de su uso: https://www.youtube.com/channel/UCxxp8jCnk5SDOrOxvRU-Few

- Es un software de pago y ya no tiene soporte XD, osea no se puede comprar. Lo veo liado para hacerle Ing. Inversa, lo revisé y está en .Net C# + ofuscación Xenocode.

- Limitación:

Código:
You are using a demo version of the product.   Execution is limited to the first 50 lines of your project. When analyzing a file, only about 30% of the messages will be displayed.  A generic message will be displayed for the other 70% of messages when errors and warnings are found in your files.  You will only be able to analyze projects and files a limited number of times per session.  The background analyzer will only display errors and warnings in the first 25 lines of code for any file.  This demo version of the product will expire in 30 days.
En línea

.:Xx4NG3LxX:.

Desconectado Desconectado

Mensajes: 200


¿Aún no estás registrad@? ¿Qué esperas?


Ver Perfil WWW
Re: [AYUDA] [BATCH] Problemita con sustitución de caracteres...
« Respuesta #7 en: 21 Febrero 2020, 03:06 am »

Nahh ya hallé la solución. Era casi lo mismo que lo de EdePC
En línea

"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"


**Aincrad**


Desconectado Desconectado

Mensajes: 573



Ver Perfil WWW
Re: [AYUDA] [BATCH] Problemita con sustitución de caracteres...
« Respuesta #8 en: 21 Febrero 2020, 03:20 am »

Por que haces el codigo tan largo?  :huh:

Podrias meter el abecedario en una variable y recorrerla como un Array .
.-. asi el codigo seria mas corto.
En línea



.:Xx4NG3LxX:.

Desconectado Desconectado

Mensajes: 200


¿Aún no estás registrad@? ¿Qué esperas?


Ver Perfil WWW
Re: [AYUDA] [BATCH] Problemita con sustitución de caracteres...
« Respuesta #9 en: 21 Febrero 2020, 14:28 pm »

Por que haces el codigo tan largo?  :huh:

Podrias meter el abecedario en una variable y recorrerla como un Array .
.-. asi el codigo seria mas corto.

No sé como. Sino, lo hubiese hecho así. De hecho, lo había pensado, pero no me llegó ninguna idea de como hacerlo.
En línea

"Quizá Batch no sea un lenguaje de programación, pero no obstante deja de ser útil. Asi que no anden diciendo «Que ganas de perder el tiempo»"


Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Salvar caracteres [batch]
Scripting
kraszic 5 2,671 Último mensaje 5 Agosto 2008, 16:55 pm
por kraszic
{Resuelto} [Batch Help!] ayuda con conversion de caracteres.. « 1 2 »
Scripting
xassiz_ 13 6,042 Último mensaje 18 Septiembre 2009, 21:35 pm
por Guerrerohgp
[Batch] Criptoanalizador del cifrado generico monoalfabetico por sustitucion
Scripting
lShadowl 0 3,122 Último mensaje 26 Febrero 2011, 14:23 pm
por lShadowl
opcion batch o vbs en sustitucion de schtasks.
Scripting
guajolote_vengador 9 7,820 Último mensaje 26 Marzo 2012, 07:26 am
por Eleкtro
Ayuda: con sustitución de funciones « 1 2 3 4 »
Programación C/C++
do-while1 31 7,579 Último mensaje 7 Marzo 2013, 20:13 pm
por leosansan
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines