roegger
Goto Top

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

Content-Key: 370502

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

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

Member: emeriks
emeriks Apr 08, 2018 updated at 15:30:13 (UTC)
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.
Member: roegger
roegger Apr 08, 2018 updated at 17:26:13 (UTC)
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.
Mitglied: 135799
135799 Apr 08, 2018, updated at Apr 09, 2018 at 07:08:23 (UTC)
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