52396
Goto Top

Txt Dateien gleichen Namens aus verschiedenen Ordnern zusammenführen

Hallo zusammen.

Ich bin auf der Suche nach einem Skript was mir txt-Dateien mit gleichem Namen aus verschiedenen Ordnern zusammenführt.
Ich habe hier schon viel in älteren Beiträgen gesucht und auch einiges hilfreiches gefunden, aber mein Wissen über batch syntax reicht nicht aus um mir daraus ein passendes Skript zu basteln.
Wäre sehr zu Dank verpflichtet, wenn mir hier jemand weiterhelfen könnte.

Zum Problem:

Ich habe einen Ordner (C:\Temp) in dem eine unbestimmte Anzahl von Unterordnern mit Namen im Stil von (200708120718) liegt. Die Ordner selbst enthalten jeweils 2 Ordner. In einem dieser Ordner (server) liegt eine Datei (logfile.log). Dieser Dateiname ist in allen diesen Ordnern gleich. Ich hätte nun gerne ein Skript, was mir alle diese logfile.log an die Datei C:\Sammel\sammel.txt anhängt.
Nach erfolgreichem Anhängen kann C:\Temp komplett gelöscht werden <- Den Schritt habe ich schon hinbekommen ;)

Könnte mir da jemand weiterhelfen?

Liebe Grüße, der Icy

Content-Key: 66766

Url: https://administrator.de/contentid/66766

Printed on: April 19, 2024 at 18:04 o'clock

Member: paulepank
paulepank Aug 21, 2007 at 23:14:44 (UTC)
Goto Top
Hallo IceTec,

dieser Code in einer Batch sollte funktionieren:

for /f "delims=" %%i in ('dir c:\temp\logfile.log /b /s') do @type "%%i" >> C:\Sammel\sammel.txt  

cu paulepank
Member: Biber
Biber Aug 22, 2007 at 01:01:29 (UTC)
Goto Top
Moin IceTec,

als kosmetische Veränderungen an paulepanks Lösung würde ich noch vorschlagen:
for /f "delims=" %%i in ('dir "c:\temp\logfile.log" /b /s^|find /i "\server\logfile"') do type "%%i?">>c:\sammel\Sammel.txt  
Durch den FIND-Filter stellst Du sicher, dass auch nur "logfile.log"s aus dem "server"-Unterverzeichnis genommen werden.
Durch das type "%%i?" bekommt jedes Logfile-Teil wenigstens noch eine Kopfzeile mit dem Pfad/Dateinamen.
Sonst könnte Deine Sammel.txt auf Dauer ein wenig langweilig zu lesen werden.

Eine etwas kürze Schreibweise wäre (ich schreibe es mal zum Abfeuern am CMD-Prompt, weil ich dafür aber nun wirklich nicht gleich eine ganze Batchdatei schreiben würde):
For /R "c:\temp" %i in (server\logfile.log) do @type "%i?">>c:\sammel\sammel.txt  

Grüße
Biber
Mitglied: 52396
52396 Aug 22, 2007 at 06:48:47 (UTC)
Goto Top
Vielen vielen Dank für die schnelle Antwort. Beide scripts haben auf Anhieb funktioniert.
Nun bin ich endlich das Problem los.
Nochmals vielen Dank euch beiden.

Liebe Grüße, Icy