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"
@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
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:
@echo off
find /i "valido" "texto.txt"
if %errorlevel%==0 (echo exicte) else (echo noexicte)
pause
Para buscar una palabra en la ultima linea podes hacer esto....
@echo off
for /f "delims=" %%a in ('type "texto.txt"') do (echo %%a>"temporal.txt")
find /i "valido" "temporal.txt">nul
if %errorlevel%==0 (echo Encontrado) else (echo No encontrado)
del "temporal.txt"
pause>nul
Pero si en la ultima linea solo dice la palabra valido puedes hacer esto...
@echo off
for /f "delims=" %%a in ('type "texto.txt"') do (set ultimalinea=%%a)
if %ultimalinea%==valido (echo Encontrado) else (echo No encontrado)
pause>nul
Salu2.
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
@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
http://foro.elhacker.net/scripting/acciones_sobre_archivos_de_texto_batch-t242748.0.html (http://foro.elhacker.net/scripting/acciones_sobre_archivos_de_texto_batch-t242748.0.html)
a ver lo que vi es que tenes 2 txt uno dice
detalle.txt
Citarcodigo:255
registro:2333
nombre pc:25555
ip:192.168.12.1
el otro es ips.txt
Citar125.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
@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
Citar125.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
Citarcodigo: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
@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
Citar125.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