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

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Ayuda [BATCH]
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda [BATCH]  (Leído 4,410 veces)
najmuddin

Desconectado Desconectado

Mensajes: 56


DARAK


Ver Perfil
Ayuda [BATCH]
« en: 16 Junio 2008, 23:20 pm »

Saludos.

Disculpen, tengo el problema siguiente:

Quiero reemplazar una parte de una variable por cualquier cosa. El inconveniente es que lo que busco es que la parte que se desea reemplazar se escoja por el usuario, por ejemplo:

TENGO EL SIGUIENTE TEXTO (guardado en un txt):

Código:
casa$perro$esomismo$vida$codigo$bla$etc$

Quiero que la variable reemplace alguno de esos valores, entonces utilizo un For de la manera siguiente:

Código:
for /f "tokens=1-10 delims=$" %%a in (cosa.txt) do (set cosa=%%a%%b%%c%%d%%e)

Ahora tengo la variable "cosa" con algunos de los valores. Lo que busco es poder reemplazar alguno, lo que puedo lograr sin problemas de esta forma:

Código:
%cosa:perro=$%

Lo que reemplaza "perro" por el signo $...

EL PROBLEMA:

Quiero que así como puede ser "perro" pueda ser cualquiera, por lo que busco poner una variable con /p para que escojer el valor que sea...

¿Cómo logro encrustar una variable adentro de la otra?
para que quede así:

Código:
%cosa:%variable%=$%

Muchas Gracias. No sé si fui totalmente claro al citar esto... Me he roto la cabeza más de una Semana en mi colegio y en el trabajo pensando en una solución, para llegar a mi casa y encontrar que no funciona... Espero que puedan Ayudarme.

Najmuddin




« Última modificación: 17 Junio 2008, 00:38 am por najmuddin » En línea

-DARAKknight-

sirdarckcat
Aspirante a supervillano
Colaborador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: Ayuda [BATCH]
« Respuesta #1 en: 29 Junio 2008, 10:23 am »

Código
  1. @echo off
  2. set abc=hola
  3. set yoz=abc
  4. set res=set res=%%%yoz%%%
  5. %res%
  6. echo %res%
  7.  

también puedes hacer
set res=set res=%%cosa:%yoz%=$%%

deberia funcionar


« Última modificación: 29 Junio 2008, 10:25 am por sirdarckcat » En línea

carlitos.dll

Desconectado Desconectado

Mensajes: 266



Ver Perfil
Re: Ayuda [BATCH]
« Respuesta #2 en: 29 Junio 2008, 12:04 pm »

Código:
@echo off
for /f "tokens=* delims=$" %%t in (file.txt) do set s=%%t & call :metodo
pause
exit
:metodo
set text=perro
set replace=gato

::set s=%s:%text%=%replace%%
::aqui no logre colocar variables, esto no funciona.

echo %s%
::esto si funciona, aunque no es la idea.
set s=%s:perro=gato%
echo %s%

En línea

sirdarckcat
Aspirante a supervillano
Colaborador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: Ayuda [BATCH]
« Respuesta #3 en: 29 Junio 2008, 12:48 pm »

Me es imposible probar el código,. pero deberia funcionar..
Código:
@echo off
for /f "tokens=* delims=$" %%t in (file.txt) do set s=%%t & call :metodo
pause
exit
:metodo
set text=perro
set replace=gato
call:eval %%s:%text%=%replace%%%
echo %s%
goto:EOF
:eval
set s=%1
En línea

najmuddin

Desconectado Desconectado

Mensajes: 56


DARAK


Ver Perfil
Re: Ayuda [BATCH]
« Respuesta #4 en: 30 Junio 2008, 01:55 am »

Muchas Gracias por los Códigos...

Sidarckcat, sí funciona el que dijiste, aunque aún ignoro una parte... nunca he utilizado el caracter & porque no entendí bien su uso... Lo he visto doble (&&). Podría uno de ustedes explicarme dónde puede usuarse y para qué...

PD: Por ahí derecho una descripción breve del :EOF, he leído el tutorial de BATCH avanzado, pero aún así no estoy del todo seguro...

Disculpen... Gracias de nuevo

 :rolleyes:

----- Acabo de descubrir que era lo que no me dejaba hacer todo bien desde el principio...

inicialmente por esto:

1 - %s:%text%=%replace%% ---> Sólo usaba un % que hacía que apareciera "Text" (No sé por qué)

2 - %%s:%text%=%replace%% ---> Cuando usaba %% al inicio, sólo cerraba uno al final...


>>> ¿Por qué al usar %% sentencia %%  funciona y con % sentencia % no?

Gracias
En línea

-DARAKknight-

sirdarckcat
Aspirante a supervillano
Colaborador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: Ayuda [BATCH]
« Respuesta #5 en: 30 Junio 2008, 02:54 am »

Porque %% regresa un caracter "%"
En línea

najmuddin

Desconectado Desconectado

Mensajes: 56


DARAK


Ver Perfil
Re: Ayuda [BATCH]
« Respuesta #6 en: 1 Julio 2008, 00:27 am »

perdon... Estuve intentando hacer otro, pero por qué no funciona de esta manera?:

Código:
@echo off
set var1=texto cualquiera
echo.
echo.
echo %var1%
echo.
set /p var2= parte a reemplazar:
set var2=%%var1:%var2%=$%%
echo %var2%
pause>nul

¿Tiene que ser únicamente llamando a una función?

Disculpen.
« Última modificación: 1 Julio 2008, 00:38 am por najmuddin » En línea

-DARAKknight-

sirdarckcat
Aspirante a supervillano
Colaborador
***
Desconectado Desconectado

Mensajes: 7.029


No estoy loco, soy mentalmente divergente


Ver Perfil WWW
Re: Ayuda [BATCH]
« Respuesta #7 en: 1 Julio 2008, 13:54 pm »

si
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
ayuda con batch
Scripting
jafeba 2 2,624 Último mensaje 23 Noviembre 2010, 22:14 pm
por flony
Ayuda con un Batch
Análisis y Diseño de Malware
EL ZAR08 3 3,902 Último mensaje 1 Marzo 2011, 18:28 pm
por Karcrack
ayuda con BATCH!!
Hacking
-r3- 4 3,938 Último mensaje 29 Junio 2011, 22:41 pm
por dont'Exist
Ayuda. Contaseña en batch
Scripting
Lockup 4 3,603 Último mensaje 2 Julio 2011, 19:02 pm
por Lockup
ayuda en batch
Scripting
47anonimo74 3 3,304 Último mensaje 6 Julio 2011, 21:35 pm
por SuperDraco
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines