1

folder1 に 300 個のテキスト ファイル、folder2 に 300 個のテキスト ファイルがあります。

以下は、1 つのテキスト ファイルのサンプル コンテンツです。

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)各ファイルの内容(多くの行)を、合計を含む1行に置き換えます。>>元のデータを保持し、合計を最後に追加する場合は、代わりに次を使用する必要があります。

echo %total% >>"%%F"

2)バッチが計算できる最大の整数値は2,147,483,647です。合計は、各ファイルのその数以下である必要があります。そうでない場合、失敗します。合計がその値を超える可能性がある場合は、他の言語を使用する必要があります。おそらく、JScript、VBScript、またはPowerShellです。

于 2012-11-02T21:20:07.147 に答える