我有一個文件,內容如下
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- 根據另一個指令的結果循環指令。
- 變數- 提取變數的一部分(子字串)