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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  como buscar una palabra en la ultima linea de un txt con un bat
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: como buscar una palabra en la ultima linea de un txt con un bat  (Leído 6,942 veces)
patorejo

Desconectado Desconectado

Mensajes: 18


Ver Perfil
como buscar una palabra en la ultima linea de un txt con un bat
« en: 10 Agosto 2010, 09:06 am »

como podria buscar en un archivo de txt,una palabra pero buscar solo en la ultima linea.

estaba buscando con este codigo pero el problema es q solo sirve para buscar la palabra en todo el archivo ,yo solo quiero q pregunte si la ultima linea del txt es igual a "valido" entonces ir a valido,y si es diferente entonces ir a "no valido"


Código:
@echo off
:INICIO
find /i "valido" "texto.txt"
if %errorlevel%==0 (goto VALIDO) else (goto NOVALIDO)

:valido
 echo PALABRA ENCONTRADA
pause > null


:novalido
echo PALABRA no ENCONTRADA


creo que tendria que recorrer el txt y guardar el numero de lineas de codigo en una variable,estoy algo perdido en bat,alguien q conozca del tema le agradeceria la ayuda

ahh me olvidaba el texto que quiero recorrer es un log de un programa,por lo cual se esta actualizando cada segundo


« Última modificación: 10 Agosto 2010, 16:21 pm por patorejo » En línea

flony


Desconectado Desconectado

Mensajes: 583



Ver Perfil
Re: como buscar una palabra en la ultima linea de un txt con un bat
« Respuesta #1 en: 10 Agosto 2010, 14:00 pm »

el tema de la ultima linea lo busco se q leo en su tuto sobre txt lo tiene...eso si creo es estatico el log...me fijo bien pero a primera vista en tu codigo yo lo pondria asi...eso si despues que descubra como meter la ultima fila  ;D  :rolleyes:
Código:
@echo off
find /i "valido" "texto.txt"
if %errorlevel%==0 (echo exicte) else (echo noexicte)
pause


« Última modificación: 10 Agosto 2010, 14:17 pm por flony » En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
maxx93

Desconectado Desconectado

Mensajes: 99


Lo imposible es la ignorancia de lo posible


Ver Perfil
Re: como buscar una palabra en la ultima linea de un txt con un bat
« Respuesta #2 en: 10 Agosto 2010, 21:25 pm »

Para buscar una palabra en la ultima linea podes hacer esto....

Código
  1. @echo off
  2. for /f "delims=" %%a in ('type "texto.txt"') do (echo %%a>"temporal.txt")
  3. find /i "valido" "temporal.txt">nul
  4. if %errorlevel%==0 (echo Encontrado) else (echo No encontrado)
  5. del "temporal.txt"
  6. pause>nul
  7.  

Pero si en la ultima linea solo dice la palabra valido puedes hacer esto...
Código
  1. @echo off
  2. for /f "delims=" %%a in ('type "texto.txt"') do (set ultimalinea=%%a)
  3. if %ultimalinea%==valido (echo Encontrado) else (echo No encontrado)
  4. pause>nul
  5.  
Salu2.
« Última modificación: 10 Agosto 2010, 21:32 pm por maxx93 » En línea

patorejo

Desconectado Desconectado

Mensajes: 18


Ver Perfil
Re: como buscar una palabra en la ultima linea de un txt con un bat
« Respuesta #3 en: 12 Agosto 2010, 02:55 am »

oye muchas gracias funciona perfecto,ahora tengo otra duda,mira si por ejemplo encuentro la palabra q buscada entonces se realiza un proceso,que consiste en modificar una linea de otro txt

como haria en cambio para modificar una linea de un txt por otra
 
Código:
@echo off
inicio:
for /f "delims=" %%a in ('type "texto.txt"') do (echo %%a>"temporal.txt")
find /i "valido" "temporal.txt">nul
if %errorlevel%==0 (goto Encontrado) else (goto inicio:)


encontrado:
find /i "ip" "modificar.txt"
if %errorlevel%==0 ("AQUI como reemplazo la  palabra que encontre por otro ")
pause>nul

 
por ejemplo en el txt que quiero reemplazar existe una linea que contiene una palabra por decir "ip=192.168.0.1"  como hago para cambiar esa ip de ese txt por otra ,estaba pensando en buscar esa linea y modificarla.

pero me di cuenta que  del dicho al hecho ay mucho trecho y ay es donde vengo a pedirle ayuda a los expertos
« Última modificación: 12 Agosto 2010, 03:00 am por patorejo » En línea

leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: como buscar una palabra en la ultima linea de un txt con un bat
« Respuesta #4 en: 12 Agosto 2010, 05:08 am »

http://foro.elhacker.net/scripting/acciones_sobre_archivos_de_texto_batch-t242748.0.html
En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
flony


Desconectado Desconectado

Mensajes: 583



Ver Perfil
Re: como buscar una palabra en la ultima linea de un txt con un bat
« Respuesta #5 en: 13 Agosto 2010, 21:52 pm »

a ver lo que vi es que tenes 2 txt uno dice
detalle.txt
Citar
codigo:255
registro:2333
nombre pc:25555
ip:192.168.12.1
el otro es ips.txt
Citar
125.251.32.1
145.21.23.5
147.28.6.2
123.214.36.4
125.253.24.26
12.36.25.58
89.25.41.65
41.25.36.41
bue una forma y aclaro no la unica  ;) seria
Código:
@echo off
(
echo 4,4,1M
echo e
) | edlin /b detalle.txt

<"detalle.txt" set /p "ip="
set "ip"

set copiar=%ip:~3%
echo %copiar%>>ips.txt
del /f detalle.txt
del /f detalle.bak
resultado en ips.txt con el primer code
Citar
125.251.32.1
145.21.23.5
147.28.6.2
123.214.36.4
125.253.24.26
12.36.25.58
89.25.41.65
41.25.36.41

192.168.12.1
el problemita que tiene es q si se va actualizando el detalle.txt no se como terminaria el ultimo renglon...jijiji ya me pongo a ver seria con for y find para q busque en cada renglon donde haya la palabra ip extraiga el caracter y lo copie a ips.txt...lo hago y modifico el mensaje
editado
mira con un detalle.txt
Citar
codigo:255
registro:2333
nombre pc:25555
ip:192.168.12.1
codigo:255
registro:2333
nombre pc:25555
ip:192.168.12.2
codigo:255
registro:2333
nombre pc:25555
ip:192.168.12.3
y un code
Código:
@echo off
for /f %%a in ('FIND /I "ip" detalle.txt') do (echo %%a>>ips.txt)
sale esto... :silbar: ya se tiene los string ip:...pero no se como sacarlos dentro del for...algo se me va a ocurrir ;D
Citar
125.251.32.1
145.21.23.5
147.28.6.2
123.214.36.4
125.253.24.26
12.36.25.58
89.25.41.65
41.25.36.41

----------
ip:192.168.12.1
ip:192.168.12.2
ip:192.168.12.3
« Última modificación: 14 Agosto 2010, 00:01 am por flony » En línea

si un problema no tiene solucion entonces no es un problema...es algo inevitable
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines