Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Logfiles aus mehreren Unterverzeichnissen rekursiv in eine Datei kopieren

Frage Entwicklung Batch & Shell

Mitglied: ipzipzap

ipzipzap (Level 1) - Jetzt verbinden

01.05.2012, aktualisiert 07:18 Uhr, 3133 Aufrufe, 8 Kommentare

Hallo,

Ich habe hier ein Verzeichnis mit täglichen Logfiles, sortiert wiederum in Unterverzeichnissen:

\LOGFILES\DAILY\20120501\CLIENT01.LOG
\LOGFILES\DAILY\20120501\CLIENT02.LOG
\LOGFILES\DAILY\20120501\CLIENT03.LOG
...
\LOGFILES\DAILY\20120502\CLIENT01.LOG
\LOGFILES\DAILY\20120502\CLIENT02.LOG
\LOGFILES\DAILY\20120502\CLIENT03.LOG
...
\LOGFILES\DAILY\20120503\CLIENT01.LOG
\LOGFILES\DAILY\20120503\CLIENT02.LOG
\LOGFILES\DAILY\20120503\CLIENT03.LOG
...

Diese Logs möchte ich nun in eine einzige Datei kopieren, z.B. nach:

\LOGFILES\DAILY\LOGS.LOG

Ich lese mich jetzt hier schon zwei Tage durch, aber eine funktionierende Lösung für mein Problem kann ich bis jetzt leider nicht finden.
Jemand eine Idee, wie ich das Problem lösen kann? Oder ist dies mit Batch nicht möglich?


Danke im Voraus,
ippi
Mitglied: 60730
01.05.2012 um 08:12 Uhr
Moin,

Hmm anhand deiner letzten zeile erkenne ich, dass du in zwei tagen aber wenig im batch bereich gesucht hast, denn dort schreibt jeder, danke immer gerne, wenn man gehilft hat aber blosss nicht vorher.


Also was brauchst du?
Eine batch, die eine schleife durchackert und nach dateien mit der suffix log in einem uebergeordnetetn ordner jahrmonattag sucht und die zu einer zusammenfasst?

Hmmm

For /r oder for /? Oder das tut zur for schleife
Type %a>>neues.logfile oder type /?
Oder copy neues.log + %a neues.log

Gruebel...

Gruss
Bitte warten ..
Mitglied: ipzipzap
01.05.2012 um 08:40 Uhr
Hmm anhand deiner letzten zeile erkenne ich, dass du in zwei tagen aber wenig im batch bereich gesucht hast, denn dort schreibt
jeder, danke immer gerne, wenn man gehilft hat aber blosss nicht vorher.

Ok, ich hab gesucht, aber nichts gefunden, was ich verstehe

Also was brauchst du?
Eine batch, die eine schleife durchackert und nach dateien mit der suffix log in einem uebergeordnetetn ordner jahrmonattag sucht
und die zu einer zusammenfasst?

Ja genau
Bitte warten ..
Mitglied: 60730
01.05.2012 um 09:09 Uhr
Zitat von ipzipzap:
Ok, ich hab gesucht, aber nichts gefunden, was ich verstehe
ach so, versteh ich nicht

Also was brauchst du?
Eine batch, die eine schleife durchackert und nach dateien mit der suffix log in einem uebergeordnetetn ordner jahrmonattag sucht und die zu einer zusammenfasst?
*mea culpa, aber diese Frage war rhetorischer Natur

Ja genau
  • Perfekt, damit ist doch die Frage:
Jemand eine Idee, wie ich das Problem lösen kann?
beantwortet.
Und wie das geht (sogar detailliert mit 2 verschiedenen Ansätzen) das findest du, wenn du nicht suchen willst unter der Zeile hmmmm.
Bitte warten ..
Mitglied: Friemler
01.05.2012 um 10:07 Uhr
Hallo ipzipzap,

teste mal folgendes:
01.
@echo off & setlocal 
02.
 
03.
set "LogPath=E:\LogFiles\Daily" 
04.
set "DestFile=%LogPath%\Logs.log" 
05.
 
06.
if not exist "%DestFile%" type NUL > "%DestFile%" 
07.
 
08.
for /f "delims=" %%d in ('dir /b /a:d /o:ne "%LogPath%"') do ( 
09.
  for /f "delims=" %%f in ('dir /b /a:-d /o:ne "%LogPath%\%%d"') do ( 
10.
    copy /b "%DestFile%"+"%LogPath%\%%d\%%f" "%DestFile%" > NUL 
11.
12.
)
Ich gehe davon aus, dass sich in den nach dem Datum benannten Verzeichnissen wirklich NUR Logdateien befinden.

Gruß
Friemler
Bitte warten ..
Mitglied: ipzipzap
01.05.2012 um 12:29 Uhr
Hallo Friemler,

erstmal vielen Dank für die erste wirklich hilfreiche Antwort. Aus Deinem Beispiel werde sogar ich schlau.

Ich gehe davon aus, dass sich in den nach dem Datum benannten Verzeichnissen wirklich NUR Logdateien befinden.

Theoretisch ja, aber Du weißt ja, irgendwann ist da mal was drin, was da nicht reingehört.
Könnte ich dies aber nicht von vornherein umgehen? Etwa, indem ich das zweite "dir" in Deinem
Beispiel abändere? In etwa so:

01.
for /f "delims=" %%d in ('dir /b /a:d /o:ne "%LogPath%"') do ( 
02.
  for /f "delims=" %%f in ('dir /b /a:-d /o:ne "%LogPath%\%%d\*.log"') do ( 
03.
    copy /b "%DestFile%"+"%LogPath%\%%d\%%f" "%DestFile%" > NUL 
04.
05.
)
Ich hab also nur ein " *.log " hinten drangehängt. Was sagst du dazu?
Siehst Du da Probleme?


Gruß,
ippi
Bitte warten ..
Mitglied: Friemler
01.05.2012 um 19:03 Uhr
Hallo ipzipzap,

sooo, zurück vom 1. Mai Ausflug .

Zitat von ipzipzap:
Ich hab also nur ein " *.log " hinten drangehängt. Was sagst du dazu?
Siehst Du da Probleme?

Nö, kein Problem, genau richtig.

Als Ergänzung für den Fall, das ein Verzeichnis mal GARKEINE Logdateien enthalten sollte oder das Verzeichnis, das eigentlich nach dem Datum benannte Verzeichnisse enthalten sollte, leer ist:
01.
for /f "delims=" %%d in ('dir /b /a:d /o:ne "%LogPath%" 2>NUL') do ( 
02.
  for /f "delims=" %%f in ('dir /b /a:-d /o:ne "%LogPath%\%%d\*.log" 2>NUL') do ( 
03.
    copy /b "%DestFile%"+"%LogPath%\%%d\%%f" "%DestFile%" > NUL 
04.
05.
)
Mit 2>NUL wird der Standardfehlerkanal auf das NUL-Device umgeleitet => Fehlermeldungen wie "Datei nicht gefunden" werden verschluckt und führen nicht zu einer Verarbeitung der FOR-Schleife(n).

Gruß
Friemler
Bitte warten ..
Mitglied: pieh-ejdsch
02.05.2012 um 14:01 Uhr
moin Friemler,

... Fehlermeldungen wie "Datei nicht gefunden" werden verschluckt und führen nicht zu einer Verarbeitung der FOR-Schleife(n).

Ja - sicher ist es schon.

Die Forschleife verabeitet Kein Handle 2
scheinbar auch nicht wenn 2 nach 3 dubliziert wird - dafür aber wieder doch wenn dabei 1 nach 3 dubliziert wird.


01.
>for /f %i in ('dir xy  2^>^&1') do @echo Ausgabe 
02.
Ausgabe 
03.
Ausgabe 
04.
Ausgabe 
05.
Ausgabe 
06.
 
07.
>for /f %i in ('dir xy  2^>^&3') do @echo Ausgabe 
08.
Datei nicht gefunden 
09.
Ausgabe 
10.
Ausgabe 
11.
Ausgabe 
12.
 
13.
>for /f %i in ('dir xy  1^>^&2 ') do @echo Ausgabe 
14.
 Datenträger in Laufwerk C: ist Win7 
15.
 Volumeseriennummer: 6497-D5C3 
16.
 
17.
 Verzeichnis von C:\Users\Pieh-Ejdsch 
18.
 
19.
Datei nicht gefunden 
20.
 
21.
>for /f %i in ('dir xy  1^>^&3 2^>^&1') do @echo Ausgabe 
22.
Ausgabe 
23.
Ausgabe 
24.
Ausgabe 
25.
Ausgabe
Microsoft eben!

01.
@echo off & setlocal 
02.
 
03.
set "LogPath=E:\LogFiles\Daily" 
04.
set "DestFile=%LogPath%\Logs.log" 
05.
 
06.
if not exist "%DestFile%" type NUL > "%DestFile%" 
07.
 
08.
for /d /r "%LogPath%" %%i in (*) do @if exist "%%i\CLIENT*.Log" copy /b "%Destfile%"+"%%i\CLIENT*.Log" "%DestFile%"
Gruß Phil
Bitte warten ..
Mitglied: ipzipzap
03.05.2012 um 12:06 Uhr
Super, Danke!

Damit hat sich mein Problem hier gelöst
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Batch & Shell
gelöst Ordner per Batch verschieben, Datei kopieren (2)

Frage von Shape.Shifter zum Thema Batch & Shell ...

C und C++
gelöst In einer Windows Form Anwendung per Button eine Datei kopieren (4)

Frage von Knuefi zum Thema C und C ...

Batch & Shell
gelöst Powershell Datei kopieren mit ACL Script funktioniert nicht (4)

Frage von xpxy15 zum Thema Batch & Shell ...

Batch & Shell
Batch: Word Datei kopieren und umbennen (9)

Frage von ExcelNoob177 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (20)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...

Festplatten, SSD, Raid
M.2 SSD wird nicht erkannt (14)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...