Windows xp 如何从dos批处理中的文件添加总计

Windows xp 如何从dos批处理中的文件添加总计,windows-xp,batch-file,Windows Xp,Batch File,我想从文本文件中的行添加总计 我的file.txt如下所示: Totals: 7 passed, 0 failed, 0 skipped Totals: 10 passed, 0 failed, 0 skipped Totals: 6 passed, 0 failed, 0 skipped Totals: 9 passed, 0 failed, 0 skipped Totals: 4 passed, 0 failed, 1 skipped Totals: 31 passed, 0 failed,

我想从文本文件中的行添加总计

我的file.txt如下所示:

Totals: 7 passed, 0 failed, 0 skipped
Totals: 10 passed, 0 failed, 0 skipped
Totals: 6 passed, 0 failed, 0 skipped
Totals: 9 passed, 0 failed, 0 skipped
Totals: 4 passed, 0 failed, 1 skipped
Totals: 31 passed, 0 failed, 0 skipped
Totals: 10 passed, 0 failed, 0 skipped
Totals: 4 passed, 0 failed, 0 skipped
Totals: 8 passed, 0 failed, 0 skipped
Passed : XX
Failed : 0
Skipped: X
因此,当我运行
sumtotals.bat file.txt
时,我想要如下内容:

Totals: 7 passed, 0 failed, 0 skipped
Totals: 10 passed, 0 failed, 0 skipped
Totals: 6 passed, 0 failed, 0 skipped
Totals: 9 passed, 0 failed, 0 skipped
Totals: 4 passed, 0 failed, 1 skipped
Totals: 31 passed, 0 failed, 0 skipped
Totals: 10 passed, 0 failed, 0 skipped
Totals: 4 passed, 0 failed, 0 skipped
Totals: 8 passed, 0 failed, 0 skipped
Passed : XX
Failed : 0
Skipped: X
您可以对此进行以下操作:

@echo off

set passed=0
set failed=0
set skipped=0

for /f "tokens=2,4,6 delims= " %%a in (%1) do call :add %%a %%b %%c

echo passed=%passed%
echo failed=%failed%
echo skipped=%skipped%


goto :eof


:add
REM echo %1 %2 %3
set /a passed=%passed%+%1
set /a failed=%failed%+%2
set /a skipped=%skipped%+%3


:eof
结果:

C:\temp>sumtotals.bat file.txt
passed=89
failed=0
skipped=1

+1,如果使用
set/a passed+=…
等等,则不需要(慢速)调用。