我有一个文件,其内容如下
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- 循环命令以执行另一个命令的结果。
- 变量- 提取变量的一部分(子字符串)