Tengo un archivo cuyo contenido es el siguiente
Testing:TEST1
--- Import
--- Build
Testing:TEST2
--- Import
--- Build
Testing:TEST3
--- Import
--- Build
Summary: Tests: 3 Failures:1
Necesito conseguir las figuras 3 y 1.
Respuesta1
¿Estás usando Windows >= 2000 para esto? Si es así, suponiendo que los datos estén en un archivo llamado "dump.txt", podría intentar crear un archivo por lotes (es decir, "foo.bat") que contenga este código:
@ECHO OFF
FOR /F "tokens=1,3,5 delims=: " %%A IN (dump.txt) DO (
IF "%%A"=="Summary" echo %%B %%C
)
El archivo por lotes (foo.bat) y el archivo de datos (dump.txt) deben estar en la misma carpeta.
Respuesta2
Necesito conseguir las figuras 3 y 1.
Utilice el siguiente comando por lotes (test.cmd):
@echo off
setlocal
setlocal EnableDelayedExpansion
for /f "tokens=* skip=2" %%i in ('find "Summary" %1') do (
set _line=%%i
for /f "tokens=3,4" %%j in ("!_line!") do (
set _tests=%%j
set _temp=%%k
set _fails=!_temp:~-1!
echo Number of tests: !_tests!
echo Number of fails: !_fails!
)
)
Uso:
test File
Dónde:
- El archivo es el archivo de datos (
%1
)
Ejemplo:
F:\test>type test.txt
Testing:TEST1
--- Import
--- Build
Testing:TEST2
--- Import
--- Build
Testing:TEST3
--- Import
--- Build
Summary: Tests: 3 Failures:1
F:\test>test test.txt
Number of tests: 3
Number of fails: 1
Otras lecturas
- Un índice AZ de la línea de comando CMD de Windows- Una excelente referencia para todo lo relacionado con la línea cmd de Windows.
- para /f- Comando de bucle contra los resultados de otro comando.
- variables- Extraer parte de una variable (subcadena)