내용이 다음과 같은 파일이 있습니다.
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)은 동일한 폴더에 있어야 합니다.
답변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
추가 자료
- Windows CMD 명령줄의 AZ 인덱스- Windows cmd 라인과 관련된 모든 것에 대한 훌륭한 참고 자료입니다.
- /f에 대해- 다른 명령의 결과에 대해 명령을 반복합니다.
- 변수- 변수(하위 문자열)의 일부 추출