배치 파일을 통해 줄의 각 필드를 읽는 방법

배치 파일을 통해 줄의 각 필드를 읽는 방법

내용이 다음과 같은 파일이 있습니다.

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

숫자 3 과 1 을 얻어야 합니다.

답변1

이를 위해 Windows >= 2000을 사용하고 있습니까? 그렇다면 데이터가 "dump.txt"라는 파일에 있다고 가정하면 다음 코드가 포함된 배치 파일(예: "foo.bat")을 만들어 볼 수 있습니다.

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

배치 파일(foo.bat)과 데이터 파일(dump.txt)은 동일한 폴더에 있어야 합니다.

"FOR /F" 사용법에 대한 추가 정보.

답변2

그림 3과 1을 구해야 해요

다음 배치 명령(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!
    )
  )

용법:

test File

어디:

  • 파일은 데이터 파일입니다( %1).

예:

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

추가 자료

관련 정보