1

я хотел скопировать файлы "scholar (1) .txt" в "scholar (25) .txt") в один файл .txt, используя следующие методы: wikihow: Merge Text (.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 ответ1

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

Для использования внутри пакетного файла знаки процента необходимо удвоить, заменив % на %%

Если общее количество файлов неизвестно, но файлы названы так, как указано, этот код можно использовать

@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

Это создает массив в среде, который позволяет нам получить правильно отсортированный список файлов.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .