Trabajar con números no es una taréa agradable en Batch (No por dificil, sino por primitivo e ineficaz si no se hace al detalle... Bueno, eso lo hace más dificil supongo xD)... el code que he echo creo que ha quedado eficiente y sin errores, pero habría sido mejor codearlo en un lenguaje decente.
Test.txt
Output:
Saludos
Código (dos) [Seleccionar]
@Echo OFF
REM [PARÁMETROS]
REM KG ARCHIVO
Call :ElHacker.net 75 test.txt
Pause
Exit
:ElHacker.net
Setlocal enabledelayedexpansion
REM Eliminamos las lineas en blanco del archivo...
Type "%~2" | FINDSTR /I "[a-z]" > "%TEMP%\%~2"
Echo+
Echo: [ Peso: %~1 ] - Resultados: | MORE
ECHO:________________________________________________________________________________
For /F "Delims=:" %%X in ('findstr /I /N "Peso..%~1" "%TEMP%\%~2"') do (
Title Peso: %~1
Set /A "LINE=0"
Set /A "LAST=%%X+1"
Set /A "FIRST=!LAST!-4"
FOR /F "Tokens=*" %%# in ('Type "%~2"') do (
Set /A "LINE+=1"
IF NOT "!LINE!" EQU "!LAST!" (
IF "!LINE!" EQU "!FIRST!" (
Set /A FIRST+=1
ECHO %%#
)
)
)
ECHO:________________________________________________________________________________
)
Setlocal disabledelayedexpansion
Goto :EOF
Test.txt
Código [Seleccionar]
Nombre: Pepe
Edad: 32
Altura: 1.8
Peso: 75
Nombre: paco
Edad: 11
Altura: 2,9
Peso: 95+
Nombre: cheguevara
Edad: 99
Altura: 7,9
Peso: 95
Nombre: chrisss
Edad: 1000
Altura: 2,19
Peso: 75
Output:
Saludos