Dateien Fusionieren

zyclop

Erfahrenes Mitglied
Hallo,

ich habe eine zeile in einem Batch geschrieben welche mir Dateien fusioniert. Das heisst, er kopiert mir alle Inahalte in eine neue Datei.

Code:
copy "test_1.txt" + "test_2.txt" + "test_3.txt" + "test_4.txt" ergebnis.txt

Jetzt ändern die Namen dieser Dateien. Die einte heisst 1234584_213654_Zyclop die andere 15814_156_Zyclop. Das heisst ich habe nicht immer diese Fixen Dateien vorallem sind es knapp über 100. Ich möchte nun alle Dateien in einem Ordner mit einander Fusionieren lassen. Also so eine art schlaufe machen für jede Datei die existiert. Hat da jemand einen Plan wie ich das machen kann?

grz zyclop
 
Ich würds ohne Schleife lösen:
Code:
copy *Zyclop.txt ergebnis.txt
Ansonsten als Schleife:
Code:
for %i in (*Zyclop.txt) do type %i >> ergebnis.txt
 
Das problem ist das nicht jede Datei ein Zyclop beinhaltet. Es ist so das sich jede Datei unterscheidet. Ist das dann immernoch möglich? im moment (korrigier mich wenn ich falsch liegE) kopiert er den inhalt jeder Datei welche *zyclop.txt heisst in ein Ergebnis.txt. Aber manche heissen nicht zyclop.
 
Was spricht dann gegen *.*?

Mit irgendeinem Muster müssen ja die Dateien selektierbar sein.
 
ja klar...sorry heute ist nicht mein tag...selektierbar sind sie schon...und zwar nach datum aber das Datum wird in text gepspeichert also gibt z.B. 01.04.08 dann 39539...wenn eine selektion möglich währe dann währe die einzige die sinn machen würde das mann sagt...diese woche z.B. 13 und er dann aus der Zahl das Datum ausrechnet und dann die Woche und das Überprüft...oder ich nehme als Dateinamen die Woche.
 
habs jetzt mal mit folgendem Code versucht, aber das läuft nicht, es startet zwar aber er kommt nicht mal zur pause

Code:
for %i in (*.txt) do type %i >> ergebnis.txt
 
Habs jetzt so gemacht:

Code:
copy *.txt ergebnis.txt

Das ist auch gut so. Funktioniert soweit bis auf eine Kleinigkeit. Er fügt mir am schluss der Zeile folgendes Zeichen.

PHP:
Das Zeichen wird nicht angezeigt. Es ist so ein Viereck. Ein nicht ausgefülltes

Das sollte nicht sein. Desweitern währe es cool wenn der Benutzter aufgefordert werden könnte die Wochennummer einzugeben. Damit sich dann die Abfrage anpasst auf:


Code:
Bitte geben sie die Wochennummer ein
Wochennummer = Eingabe
copy *[Wochennummer].txt ergebnis.txt

ist das machbar mit Batch Dateien?
 
Zuletzt bearbeitet:
Sicher ist das machbar:

Code:
SET /P WOCHE="Welche Woche soll zusammengefasst werden? "
copy *%WOCHE%.txt ergebnis.txt

Noch ne Anmerkung:
Falls du die For Schleife in eine Batch Datei ausprobiert hast, dann ist es klar das es nicht funktioniert. In Batch Dateien werden die Laufvariablen einer Schleife mit %% eingeleitet, also %%i statt %i
 
Code:
@echo off
@echo Welche Woche soll zusammengefasst werden? 
SET /P WOCHE=""
copy /y *%WOCHE%.txt ergebnis.txt

Habs jetzt so gemacht...aber im moment ist es so wenn ich woche 13 eingebe kommen natürlich auch alle mit 1 drin und wenn ich 2 oder 3 eingebe, erstellt er eine Datei mit dem Inhalt von Datei "Kopie von Kopie von Inhalt_1.txt"

weisst du ob ich da etwas falsch mache

Danke schonmal bis hierhin, wirklich eine super hilfe...ich schäme mich fast, ich kann in VB ein programm und Makros schreiben, kriege aber nicht mal einen batch zusammen o_O. :google::google::google::google::google::google::google:
 
Also bei funktioniert das wie gewünscht:
Code:
C:\test>set /P WOCHE=""
13

C:\test>copy /y *%WOCHE%.txt ergebnis.txt
Datei2_13.txt
Datei3_13.txt
Datei_13.txt
        1 Datei(en) kopiert.

C:\test>type ergebnis.txt
13 2
13 3
13

Ich kann mir höchstens vorstellen, bei dir mit anderen Dateinamen das matching nicht passt, aber da kann ich dir dann allgemein nicht weiterhelfen.
 

Neue Beiträge

Zurück