批处理文件,用于汇总文本文件中的数字,并将该总值写入文本文件

时间:2012-11-02 19:28:42

标签: windows command-line batch-file

我在folder1中有300个文本文件,在folder2中有300个文本文件

下面的

是一个文本文件的示例内容

india,car,10
uk,car,20
us,car,50

我想将第3列相加并将该总数写入同一文本文件。 例如,

for /f "tokens=3 delims=," %%a in (folder1\textfile1.txt) do set /a total+=%%a
echo %total% >folder1\textfile1.txt 

上面的代码将在textfile1.txt

中写入80

请告诉我们如何使用批处理文件对所有300个文本文件执行相同操作。

1 个答案:

答案 0 :(得分:1)

@echo off
for %%F in (
  folder1\*.txt
  folder2\*.txt
) do (
  set /a total=0
  for /f "usebackq tokens=3 delims=," %%a in ("%%F") do set /a total+=%%a
  echo %total% >"%%F"
)

重点:

1)您正在使用包含总计的单行替换每个文件(多行)的内容。如果您想保留原始数据并将总数追加到最后,则需要使用>>代替:

echo %total% >>"%%F"

2)批处理可以计算的最大整数值是2,147,483,647。总和必须小于或等于每个文件的数字,否则它将失败。如果您的总数可能超过该值,那么您将不得不使用其他语言。也许是JScript,VBScript或PowerShell。