roegger

Batch Funktion - Files aus Unterordnern mit gleichem Namen in ein File zusammenfügen

Hallo,

ich habe rund 2 Millionen Reviews die in Unterordnern liegen. Zuerst nach Städten, dann nach Unternehmen dann nach Rating (1-5) darin dann das eigentliche review als txt
also zB. Berlin/Hotel1/1-Star/rating1
Berlin /Hotel2/1-Star/rating 1
Berlin/Hotel 2/2-Star/rating 1, rating 2, rating....


Ich bernötige nun alle 1-star ratings von Berlin, dann alle 2-star ratings von Berlin..... dann das gleiche von Hamburg etc. etc.

gibt es eine Batch-Funktion um die reviews entsprechend zu filtern und dann gleich zusammen zu fügen.

Kurz: suche alle Unterordner mit dem Namen "1-star" und füge alle files darin mit der Endung .txt in ein file namens xy.txt zusammen

Über WindowsSuche und dann kopieren hängt sich mein Rechner auf....

danke
Roman
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 370502

Url: https://administrator.de/forum/batch-funktion-files-aus-unterordnern-mit-gleichem-namen-in-ein-file-zusammenfuegen-370502.html

Ausgedruckt am: 23.05.2025 um 20:05 Uhr

emeriks
emeriks 08.04.2018 aktualisiert um 17:30:13 Uhr
Goto Top
Hi,
sorry, aber jemand, der mit 2 Mio Dateien hantiert, sollte sich eigentlich mit entsprechenden Kommandozeilenbefehlen auskennen.

Powershell sollte ausreichen.
Und was heißt "zusammenfügen"? Einfach aneinanderhängen?

E.
roegger
roegger 08.04.2018 aktualisiert um 19:26:13 Uhr
Goto Top
Wenn ich mich damit auskennen würde, hätte ich die Frage hier nicht gestellt. Bin Soziologe und kein ITler

Zusammenfügen = eine textdatei erstellen

for %f in (*.txt) do type "%f" >> output.txt
Hilft mir noch nicht, da ich zuerst die review.txt files aus allen entsprechenden Ordnern suchen muss.
135799
135799 08.04.2018, aktualisiert am 09.04.2018 um 09:08:23 Uhr
Goto Top
Powershell
$root = "D:\Ratings"  
$output = "D:\Ratings"  
gci $root -Dir | %{
    gci $_.Fullname -File -Recurse -Filter "Review.txt" | gc | sc "$output\$($_.Name).txt"  
}
Batch
@echo off
set "root=D:\Ratings"  
set "output=D:\Ratings"  
for /d %%a in ("%root%") do (  
    >"%output%\%%~nxa.txt" (for /f "delims=" %%b in ('dir /b /s /a-d "%%~a\review.txt"') do type "%%b")  
)
Gruß schnuffi