
Я хотел скопировать файлы «scholar (1).txt» в «scholar (25).txt» в один файл .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
Для использования внутри пакетного файла знаки процента необходимо удвоить, заменив %
на%%
Если общее количество файлов неизвестно, но файлы имеют указанные имена, можно использовать этот код
@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
Это создает массив в среде, который позволяет нам получить правильно отсортированный по номерам список файлов.