
ich wollte die Dateien „scholar (1).txt“ bis „scholar (25).txt“ in eine einzelne TXT-Datei kopieren und habe dazu die folgenden Methoden verwendet: wikihow: Textdateien (.Txt) in der Eingabeaufforderung zusammenführen
for %f in (*.txt) do type "%f" >> output.txt
SU: Gibt es eine Möglichkeit, Textdateien mithilfe der Windows-Befehlszeile zu kombinieren?
copy *.txt bigfile.txt
Auch
type *.js > all.txt
aber es werden nicht alle Dateien der Reihe nach kopiert:
`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`
Antwort1
(for /l %a in (1 1 25) do @type "scholar (%a).txt")>all.txt
Für die Verwendung in einer Batchdatei müssen Prozentzeichen verdoppelt und %
durch%%
Wenn die Gesamtzahl der Dateien unbekannt ist, die Dateien aber wie angegeben benannt sind, kann dieser Code verwendet werden
@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
Dadurch wird in der Umgebung ein Array erstellt, das es uns ermöglicht, eine ordnungsgemäß numerisch sortierte Liste der Dateien abzurufen.