Como ler cada campo de uma linha via arquivo batch

0

Eu tenho um arquivo cujo conteúdo é o seguinte

 Testing:TEST1
 --- Import
 --- Build
 Testing:TEST2
 --- Import
 --- Build
 Testing:TEST3
 --- Import
 --- Build
Summary: Tests: 3 Failures:1

Eu preciso dos números 3 e 1.

    
por Spinman 16.07.2015 / 20:08

2 respostas

2

Você está usando o Windows > = 2000 para isso? Se assim for, supondo que os dados estão em um arquivo chamado "dump.txt", você pode tentar criar um arquivo em lote (ou seja, "foo.bat") contendo este código:

@ECHO OFF
FOR /F "tokens=1,3,5 delims=: " %%A IN (dump.txt) DO (
   IF "%%A"=="Summary" echo %%B %%C
)

O arquivo em lote (foo.bat) e o arquivo de dados (dump.txt) devem estar na mesma pasta.

Mais informações sobre o uso de "FOR / F" .

    
por 16.07.2015 / 21:25
0

Eu preciso pegar as figuras 3 e 1

Use o seguinte comando em lote (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

Onde:

  • Arquivo é o arquivo de dados ( %1 )

Exemplo:

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

Leitura Adicional

por 16.07.2015 / 21:14

Tags