cmd を使用して複数のテキスト ファイルを番号順に 1 つのテキスト ファイルにコピーする

cmd を使用して複数のテキスト ファイルを番号順に 1 つのテキスト ファイルにコピーする

ファイル「scholar (1).txt」から「scholar (25).txt」を 1 つの .txt ファイルにコピーしたいので、次の方法を使用しました。 wikihow: コマンドプロンプトでテキスト (.Txt) ファイルを結合する

for %f in (*.txt) do type "%f" >> output.txt

SU: Windows のコマンド ラインを使用してテキスト ファイルを結合する方法はありますか?

copy *.txt bigfile.txt

また type *.js > all.txt

ただし、すべてのファイルが順番にコピーされるわけではありません。

`C:\..\Documents\New folder>type *.txt >all.txt

 scholar (1).txt
 scholar (10).txt
 scholar (11).txt
 scholar (12).txt
 scholar (13).txt
 scholar (14).txt
 scholar (15).txt
 scholar (16).txt
 scholar (17).txt
 scholar (18).txt
 scholar (19).txt
 scholar (2).txt
 scholar (20).txt
 scholar (21).txt
 scholar (22).txt
 scholar (23).txt
 scholar (24).txt
 scholar (25).txt
 scholar (3).txt
 scholar (4).txt
 scholar (5).txt
 scholar (6).txt
 scholar (7).txt
 scholar (8).txt
 scholar (9).txt`

答え1

(for /l %a in (1 1 25) do @type "scholar (%a).txt")>all.txt

バッチファイル内で使用する場合は、パーセント記号を2つ重ねて%%%

ファイルの総数は不明だが、ファイル名が指定どおりである場合、このコードを使用できます。

@echo off
    setlocal enableextensions disabledelayedexpansion

    for %%z in ("scholar (*).txt") do for /f "tokens=2 delims=()" %%a in ("%%~nxz") do (
        set /a "num=1000000000+%%a"
        setlocal enabledelayedexpansion
        for %%b in (!num!) do endlocal & set "f[%%b]=%%~fz"
    )
    (for /f "tokens=1,* delims==" %%a in ('2>nul set f[') do type "%%b") > all.txt

これにより、環境に配列が作成され、適切に数値でソートされたファイルのリストを取得できるようになります。

関連情報