我在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个文本文件执行相同操作。
答案 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。