1

我在文件夹 1 中有 300 个文本文件,在文件夹 2 中有 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 个文本文件执行相同操作。

4

1 回答 1

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

于 2012-11-02T21:20:07.147 回答