wake-up-neo.net

Windows Batch - Verketten Sie mehrere Textdateien zu einer

Ich muss ein Skript erstellen, das mehrere Textdateien in einer Datei zusammenfasst. Ich weiß, dass es einfach zu bedienen ist

type *.txt > merged.txt

Aber die Anforderung ist "Verketten von Dateien vom selben Tag in die Datei day_YYYY-DD-MM.txt". Ich bin Linux-Benutzer und Windows Batch ist die Hölle für mich. 

BEARBEITEN: Es ist Windows XP

14
SpeedEX505

Die Verkettung von Dateien aus einer Batch-Datei erfolgt im einfachsten Fall mit 'copy'.

copy file1.txt + file2.txt + file3.txt concattedfile.txt
19
Lance

Legen Sie alle Dateien, die kopiert werden müssen, in einem separaten Ordner ab, um sie auf einem Laufwerk c abzulegen.

Öffnen Sie die Eingabeaufforderung - windows> geben Sie cmd ein> wählen Sie die Eingabeaufforderung aus.

Das Standardverzeichnis zeigt - Ex: C: [Ordnername]> . Wechseln Sie mit dem Befehl 'cd [Ordnername]' in das Verzeichnis, in das Sie die zu kopierenden Dateien gestellt haben.

Nach dem Verweisen auf das Verzeichnis - geben Sie 'dir' ein, das alle Dateien im Ordner anzeigt, um sicherzustellen, dass alles an Ort und Stelle ist.

Geben Sie nun Folgendes ein: 'copy * .txt [NeuerDateiname] .txt "und drücken Sie die Eingabetaste.

Erledigt!

Der gesamte Text in den einzelnen Dateien wird in die Datei [NeuerDateiname] .txt kopiert

6
Kingsman

Der Windows-Typbefehl funktioniert ähnlich wie UNIX-Kat.

Beispiel 1: Zusammenführen mit Dateinamen (Dadurch werden file1.csv und file2.csv zusammengeführt, um concat.csv zu erstellen.)

type file1.csv file2.csv > concat.csv

Beispiel 2: Dateien mit Muster zusammenführen (Dies führt alle Dateien mit der Erweiterung "csv" zusammen und erstellt concat.csv).

type  *.csv > concat.csv
3
XEngineer

Versuche dies:

@echo off
set yyyy=%date:~6,4%
set mm=%date:~3,2%
set dd=%date:~0,2%

set /p temp= "Enter the name of text file: "
FOR /F "tokens=* delims=" %%x in (texto1.txt, texto2.txt, texto3.txt) DO echo %%x >> day_%temp%.txt

Dieser Code fordert Sie auf, den Namen der Datei nach "day_" festzulegen, wo Sie das Datum eingeben können. Wenn Sie Ihre Datei nach dem aktuellen Datum benennen möchten, können Sie Folgendes tun:

FOR /F "tokens=* delims=" %%x in (texto1.txt, texto2.txt, texto3.txt) DO echo %%x >> day_%yyyy%-%mm%-%dd%.txt
1

Wir können normale CAT-Befehle verwenden, um Dateien zusammenzuführen. 

D:> cat * .csv> ausgänge.csv

0
Sadheesh

Sie können es mit type tun: 

type"C:\<Directory containing files>\*.txt"> merged.txt

alle Dateien im Verzeichnis werden an die Datei merged.txt angehängt.

0
Elenasys

Ich wiederhole einige der anderen Punkte, die bereits gemacht wurden, aber auch ein drittes Beispiel, das hilft, wenn Sie Dateien in Ordnern haben, die Sie verketten möchten.

Beispiel 1 (Dateien im selben Ordner):

copy file1.txt+file2.txt+file3.txt file123.txt

Beispiel 2 (Dateien im selben Ordner):

type *.txt > combined.txt

Beispiel 3 (Dateien existieren in mehreren Ordnern, es wird angenommen, dass newfileoutput.txt nicht vorhanden ist):

for /D %f in (folderName) DO type %f/filename.txt >> .\newfileoutput.txt
0
Gigasoup

cat "Eingabedateien"> "Ausgabedateien" 

Dies funktioniert in PowerShell, der von Windows bevorzugten Shell in den aktuellen Windows-Versionen. Daher funktioniert es. Es ist auch die einzige Version der obigen Antworten, die mit großen Dateien arbeitet, bei denen 'type' oder 'copy' fehlschlägt.

0
Stephen