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

 

 


Tema destacado: Sigue las noticias más importantes de seguridad informática en el Twitter! de elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  Encontrar palabra en .txt y crear variable
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Encontrar palabra en .txt y crear variable  (Leído 3,240 veces)
erikcatala

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Encontrar palabra en .txt y crear variable
« en: 4 Agosto 2016, 22:50 pm »

Hola, estoy tratando de buscar una palabra en concreto en un archivo .txt con batch, exactamente ro.product.device=libra. La palabra puede cambiar pero ro.product.device= siempre es igual. Me gustaría que la palabra que cambia poder guardarla en una variable.

He probado con buscar la palabra y guardar la linea en un .txt y luego reemplazar la parte ro.product.device= por nada pero siempre me queda =libra y no puedo borrar el =.

A ver si alguien me puede ayudar porque no consigo hacer lo que quiero


« Última modificación: 4 Agosto 2016, 22:56 pm por erikcatala » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Encontrar palabra en .txt y crear variable
« Respuesta #1 en: 5 Agosto 2016, 11:56 am »

He probado con buscar la palabra y guardar la linea en un .txt y luego reemplazar la parte ro.product.device= por nada pero siempre me queda =libra y no puedo borrar el =.

A ver si alguien me puede ayudar porque no consigo hacer lo que quiero

Hola.

Si ya tienes una solución casi completa, entonces es mejor que muestres tu código para poder corregírtelo y que puedas eliminar el caracter "=".

Saludos!


En línea

erikcatala

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: Encontrar palabra en .txt y crear variable
« Respuesta #2 en: 5 Agosto 2016, 15:42 pm »

No es la mejor opción pero es la que se me ocurrió con lo que se de batch. Se podría hacer mucho mejor, pero esta es la única que se me ha ocurrido y podía hacer. El script son 2 scripts que he encontrado por internet y que he adaptado. Uno para encontrar una linea de un texto y hacer una variable y el otro para reemplazar una palabra por otra en un texto.

Código:
setlocal DisableDelayedExpansion

FINDSTR ro.product.device= 3-IMG-Folder\system\build.prop > tmp2.txt
SET /p vartmp =<tmp2.txt
 
set INTEXTFILE=tmp2.txt
 
set OUTTEXTFILE=temp.txt
set SEARCHTEXT=ro.product.device
set VER=
set OUTPUTLINE=
 
for /f "tokens=1,* delims=¶" %%A in ( '"type %INTEXTFILE%"') do (
    SET string=%%A
    setLocal EnableDelayedExpansion
    SET modified=!string:%SEARCHTEXT%=%VER%!
    echo.!modified! >> %OUTTEXTFILE%
    endlocal
 )
 
del %INTEXTFILE%
rename %OUTTEXTFILE% %INTEXTFILE%
En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Encontrar palabra en .txt y crear variable
« Respuesta #3 en: 5 Agosto 2016, 17:34 pm »

Me gustaría que la palabra que cambia poder guardarla en una variable.

Puedes hacerlo de la siguiente manera:

Código
  1. @Echo Off
  2.  
  3. Set "srcFile=.\Textfile.txt"
  4. Set "pattern=ro.product.device="
  5. Set "value="
  6.  
  7. For /F "Tokens=2* Delims==" %%# In (
  8.    'Type "%srcFile%" ^| FindStr "%pattern%"'
  9. ) Do (
  10.    Set "value=%%#"
  11. )
  12.  
  13. Echo Valor: "%value%"
  14.  
  15. Pause&Exit /B 0

Saludos
« Última modificación: 5 Agosto 2016, 17:38 pm por Eleкtro » En línea

erikcatala

Desconectado Desconectado

Mensajes: 177



Ver Perfil
Re: Encontrar palabra en .txt y crear variable
« Respuesta #4 en: 5 Agosto 2016, 17:41 pm »

Muchas gracias, me ha funcionado  ;-)

Código:
"Tokens=2* Delims=="

Esta parte supongo que elimina = pero no acabo de entenderlo muy bien, podrías explicármelo por favor?

EDIT: Este post me ha ayudado a entenderlo un poco mejor

http://foro.elhacker.net/scripting/batchalmacenar_el_contenido_de_un_archivo_txt_en_una_variable-t201944.0.html
« Última modificación: 5 Agosto 2016, 18:09 pm por erikcatala » En línea

Eleкtro
Ex-Staff
*
Desconectado Desconectado

Mensajes: 9.788



Ver Perfil
Re: Encontrar palabra en .txt y crear variable
« Respuesta #5 en: 5 Agosto 2016, 18:15 pm »

Código:
"Tokens=2* Delims=="

Esta parte supongo que elimina = pero no acabo de entenderlo muy bien, podrías explicármelo por favor?

No elimina nada, sino que lo separa en un token.

El parámetro "Tokens" determina la posición y la cantidad de tokens (partes) que se almacenan en las variables de For (%%a...%%z), y el parámetro "Delims" indica el caracter o caracteres delimitadores. Cuando el For encuentra dicho caracter o caracteres, se parte la frase en el siguiente token, y así sucesivamente.

En los parámetros "Tokens=2* Delims==" uso como caracter delimitador "=", e ignoro el token número 1 (lo que está a la izquierda del caracter delimitador "="), por que no es necesario leerlo.

Token 1 (o %%a): ro.product.device=
Token 2 (o %%b): valor

Saludos
« Última modificación: 5 Agosto 2016, 18:17 pm por Eleкtro » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Encontrar una palabra dentro de un texto
Programación Visual Basic
Hendrix 4 1,599 Último mensaje 6 Marzo 2006, 16:01 pm
por Hendrix
Encontrar una palabra de un texto
Programación Visual Basic
elultimo 1 1,530 Último mensaje 1 Junio 2007, 23:13 pm
por Mad Antrax
devolver true si palabra existe en variable
PHP
CICOLO_111234 2 6,028 Último mensaje 20 Mayo 2009, 01:40 am
por [u]nsigned
Encontrar palabra dentro de un texto...
Programación Visual Basic
Edu 5 2,713 Último mensaje 11 Septiembre 2010, 17:57 pm
por Edu
Batch. Encontrar palabra en frase
Scripting
Stealt 4 4,944 Último mensaje 30 Agosto 2013, 07:29 am
por Eleкtro
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines