Forum: PC-Programmierung Datei-Inhalte aus mehreren txt Dateien in eine kopieren


von Müngg (Gast)


Lesenswert?

Hallo Zusammen,

Erfeut über die geniale Lösung meines letzten Problems über diese 
Plattform, möchte ich gern mein nächstes Vorhaben versuchen über eine 
.bat Datei zu lösen.

Ich habe im Verzeichnis Z:\HAUF folgende Dateien

3640880HAUFALO.txt
3645329HAUFALOorig.txt
3642439HAUFALODADO.txt
8306845HAUFALO.txt

Dieser Ordner ist jedoch nur ein Zwischenspeicher.
Das heißt versch. Leute stellen txt-files mit verschiedensten Namen 
rein, ich bearbeite diese und kopiere sie anschließend ins
Verzeichnis I:\SAVE

Nun möchte ich dies automatisieren.
1.) ich starte batch von Laufwerk H:\unter.bat
2.) Dieser kopiert alle Inhalte von allen .txt Dateien im Verzeichnis 
Z:\ HAUF in eine gemeinsame Datei im Verzeichnis H:\ (z.B. test2.txt)
3.) Anschließend sollen alle Dateien aus Z:\HAUF nach I:\SAVE verschoben 
werden.

Hoffe das ihr mir dabei behilflich sein könnt

Vorab mal Danke und Gruß
Müngg

von Der Bastler (Gast)


Lesenswert?

cat Z:\HAUF\*.txt >> H:\TEST2.TXT
copy Z:\HAUF\*.txt I:\SAVE\
del Z:\HAUF\*.txt

von Peter II (Gast)


Lesenswert?

type *.txt >> gesammt.txt
move *.txt i:\Save

von ... (Gast)


Lesenswert?

Peter II schrieb:
> type *.txt >> gesammt.txt

Genau das funktioniert unter Windos NICHT!
Der Ausdruck *.txt wird erst nach dem Erzeugen von gesamt.txt aufgelöst, 
die gesamt.txt ist also mit in den Parametern von type enthalten. Quelle 
und Ziel müssen also (wie im Post von Der Bastler) zwingend in 
verschiedenen Verzeichnissen sein!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

1
for %f in (z:\hauf\*.txt) do type %f >> h:\test2.txt

Wenn das in einer Batchdatei steht, müssen statt der einfachen doppelte 
Prozentzeichen verwendet werden.

von Peter II (Gast)


Lesenswert?

... schrieb:
> Genau das funktioniert unter Windos NICHT!

hast du es mal getestet? Bei meinem WindowsXP geht es!

von Marc (gierig) Benutzerseite


Lesenswert?

Kopfschüttel....

Zusammen Kopiren von Dateien.

copy *.txt text2.txt


Copy /? bringt dann diesen hinweis:

Um Dateien aneinander zu hängen, geben Sie eine einzelne Datei als Ziel 
an,
aber mehrere Dateien als Quelle (unter Verwendung von Platzhaltern oder
in der Form: Datei1 + Datei2 + Datei3).

von ... (Gast)


Lesenswert?

Peter II schrieb:
> hast du es mal getestet? Bei meinem WindowsXP geht es!

Selbstverständlich! Es gibt zwar eventuell keine Fehlermeldung, der 
Inhalt der zusammenkopierten Datei ist aber unter Umständen Schrott. Das 
ganze hängt stark von den Dateinamen (bzw. deren Sortierung) ab.
Hat man z.B. die drei Ausgangsdateien 1.txt, 2.txt, 3.txt.
Dann funktioniert folgendes wunschgemäß:
1
type *.txt > 0.txt
ABER, folgendes geht NICHT!
1
type *.txt > 9.txt

Marc D. schrieb:
> Zusammen Kopiren von Dateien.
>
> copy *.txt text2.txt

Das geht nur mit Textdateien und hängt dann aber ein zusätliches EOF 
('^Z') an die Zieldatei an!

von ... (Gast)


Lesenswert?

... schrieb:
> Marc D. schrieb:
>> Zusammen Kopiren von Dateien.
>>
>> copy *.txt text2.txt
>
> Das geht nur mit Textdateien und hängt dann aber ein zusätliches EOF
> ('^Z') an die Zieldatei an!

OK, ich nehm alles zurück :)
Mit:
1
copy /B *.txt ziel.txt
gehts dann mit allen Dateien und ohne EOF.

von Marc (gierig) Benutzerseite


Lesenswert?

> Marc D. schrieb:
>> Zusammen Kopiren von Dateien.
>>
>> copy *.txt text2.txt
>
> Das geht nur mit Textdateien und hängt dann aber ein zusätliches EOF
> ('^Z') an die Zieldatei an!


Nach Text Dateien wurde auch gefragt. Also soweit Ok.

Das mit dem EOF stimmt Natührlich. Wenn nicht gewünscht dann
halt:

copy /b *.txt text2.txt

Damit wird der nonAscii Modus benutzt, kein Zeichen eingefügt
und würde dann auch mit anderen Dateien gehen (Sinnhaftigkeit mal
vorausgesetzt)

von Marc (gierig) Benutzerseite


Lesenswert?

Verdammt er hat selber gefunden....
Aber dann wäre es ja geklärt... :-)

von Läubi .. (laeubi) Benutzerseite


Lesenswert?

Wenn man es ganz korrekt machen will, sollte man sowies VORHER alle 
Dateien in ein Temporäres Verzeichnis kopieren, dort bearbeiten und an 
das Ziel verschieben, sonst löscht/kopiert man Dinge welche dazwischen 
gespeichert wurden fälschlicherweise mit weg.

von Müngg (Gast)


Lesenswert?

Hallo Zusammen,

den größten Teil meiner Anforderung habe ich dank Eurer Hilfe geschafft.
Jedoch bleibt jetzt ein Problem Offen.

Ich habe unzählige Leerzeilen am Ende jeder Zeile,
somit kann meine Maschine die Daten nicht mehr einlesen.

Wie bringe ich von jeder Zeile die Leerzeichen weg?


Gruß
Müngg

von googler (Gast)


Lesenswert?

sage mal, kannst du keine Suchmaschine bedienen und läßt andere Leute 
deine Arbeit machen?

Um bei deinem letzten Problem fündig zu werden, reichen bei deiner 
Lieblingssuchmaschine diese Zauberworte:

bat leerzeilen löschen

und es werden haufenweise Verweise angezeigt!

Mahlzeit

von googler (Gast)


Lesenswert?

bzw. tausche leerzeilen gegen leerzeichen, wenn du das meinst...

von Muengg (Gast)


Lesenswert?

Danke an die, die mir geholfen haben.
Elmayer an den googler

von googler (Gast)


Lesenswert?

...zum Glück gibt es Suchmaschinen, sonst hätte ich nicht gewußt was 
Elmayer bedeutet...:-)

Wenn du schon mein "Benehmen" kritisierst, solltest du erst mal an die 
eigene Nase fassen! Siehe auch 
http://www.mikrocontroller.net/articles/Netiquette#Erst_lesen.2C_dann_schreiben.21 
(vor allem der letzte Satz in dem Abschnitt paßt)

... und genau das habe ich (versucht) anzusprechen.

Mahlzeit

von ärgerlich (Gast)


Lesenswert?

googler schrieb:
> sage mal, kannst du keine Suchmaschine bedienen und läßt andere Leute
> deine Arbeit machen?
Das Gefühl bekomme ich auch gerade. Das hier [1] war ja noch ganz nett 
und vollkommen OK, aber jetzt die zweite oder dritte Anfrage dieser 
Art... Wie wäre es mit selber denken? Wenn du es per Kommandozeile nicht 
hinbekommst (durchaus verständlich) nimm halt C, C#, Visual Basic, Perl 
oder irgendwelche UNIX-Tools.

Beitrag "per batch zeilennummern in .txt datei löschen"

von Harald (Gast)


Lesenswert?

Hallo

wenn ich meherere Dateien in eine Datei kopiere mit Befehl

copy /b *.txt ziel.txt

funktioniert das.

Leider sind jedoch die Inhalte der einzelnen Inhalte hintereinander 
angereiht.

Kann man diese auch jeweils einen Zeilenumbruch machen, wenn neue 
Dateiinhalt kommt?

Lieben Dank für Euere konkrete Befehlszeile schon jetzt

LG
Harald

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.