Generar consulta con .bat a un Archivo y extraer conteo de filas especificas

bat, la idea es que este .bat consulte el archivo de texto Result y realice conteo de lines con la misma descripción.

Ej: El Archivo contiene esta estructura

TEST_REPLICATE
{
REPLICATE_ID 20309
SAMPLE_TYPE PATIENT
REAGENT_MASTER_LOT "95959UN17"
}

El Archivo contiene muchas líneas iguales pero la idea es sacar del archivo cuantas líneas contenen REAGENT_MASTER_LOT "95959UN17" y que cuente cuantos SAMPLE_TYPE PATIENT.

El numero entre comillas puede ser diferente y PATIENT puede ser QC.

1 Respuesta

Respuesta
1

No sé hasta que punto hay que ser riguroso en la comparación de literales (es decir si puede haber otros literales en las líneas que empiecen por SAMPLE_TYPE o REAGENT_MASTER_LOT que no deben ser contabilizados). Si basta con esto para identificar las líneas el BAT siguiente podría servir:

@echo off
Setlocal EnableDelayedExpansion
set /a cn1 = 0
set i1=S
set /a cn2 = 0
set i2=S
for /f "tokens=*" %%a in ('type result.txt') do (
echo %%a^^|find "SAMPLE_TYPE">nul
if errorlevel 1 set i1=N
echo %%a^^|find "REAGENT_MASTER_LOT">nul
if errorlevel 1 set i2=N
if "!i1!"=="S" set /a cn1 += 1
if "!i2!"=="S" set /a cn2 += 1
set i1=S
set i2=S
)
Echo Numero de lineas del primer tipo: ! Cn1!
Echo Numero de lineas del segundo tipo: ! Cn2!

Se supone que el archivo a analizar se llama RESULT.TXT y que las comparaciones tienen en cuenta las mayúsculas y minúsculas. Pruébalo y dime si hay que hacer algún retoque.

Al releer la consulta me he fijado en que en el caso del REAGENT dices "sacar del archivo" y no sé si quieres presentar esas líneas en pantalla o extraerlas a otro archivo diferente y no sé si quieres o no un contador de esas líneas. Para presentarlas en pantalla y mantener el contador bastaría con retocar la línea en la que dice:

if "!i2!"=="S" set /a cn2 += 1

para que diga:

if "!i2!"=="S" set /a cn2 += 1&echo %%a

Muchas Gracias lo ejecute pero no realizo nada, tengo un Archivo original con la Data que se llama RESULT.TXT y quiero pasar a un nuevo Archivo tabulado que se llame RESULT2, en este nuevo archivo quiero pasar el conteo de códigos ASSAY_ID 1102 donde el Nro 1102 puede cambiar y el SAMPLE_TYPE PATIENT donde PATIENT puede ser QC y el REAGENT_MASTER_LOT "95959UN17" el campo en comilla puede ser diferente.

La idea es poder ejecutar el .bat y que genere otro archivo con el conteo de códigos "95959UN17" cuantos ASSAY_ID 1102 usaron el "95959UN17" y cuantos PATIENT Y QC utilizaron el "95959UN17" .Atento muchas Gracias

Sería bueno que me facilitaras algún pantallazo en el que se vea el código del BAT tal como lo has generado y la salida del mismo. No sé si tienes experiencia en esto pero te intentaré indicar lo que me gustaría que hicieras:

1- Abrir una ventana CMD o Símbolo del sistema

2- Situarse en la carpeta en la que esté el archivo a tratar (RESULT.TXT)

3- Se supone que el bat estará en esa mism carpeta. Si el bat se llama PRUEBA.BAT quiero que lo listes con el comando TYPE PRUEBA.BAT y me muestres lo que sale.

4- Ejecuta el BAT y muéstrame lo que sale en la ventana CMD

¿Qué pasó con esto? Te aseguro que encontraremos la solución que necesitas, pero tienes que intentarlo y contar los problemas que te encuentres.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas