Top-Themen

Aktuelle Themen (A bis Z)

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 Letzte 10 Zeilen aus Dateien lesen

Mitglied: didie08

didie08 (Level 1) - Jetzt verbinden

02.05.2012, aktualisiert 18.10.2012, 2446 Aufrufe, 7 Kommentare

Ich brauche Hilfe beim verwendeden von foschleifen

Hallo

Ich habe in einem Ordner Logfiles stehen. Von diesen Logfiles möchte ich jeweils die letzten 10 Zeilen in einer Auswertung zusammenfassen. Ich habe mir gedacht dies mit einer verschachtelten forschleife zu tun. In der ersten Schleife zähle ich die Zeilen und in der zweiten Schleife überspringe ich die nicht benötigten Zeilen. Hier habe ich nun aber das Problem, dass meine Variable %zeile_neu% von der skip Funktion nicht erkannt wird. Kann mir jemamand sagen warum nicht?


01.
  
02.
echo on & setlocal EnableDelayedExpansion 
03.
rem liste der Logfiles 
04.
rem 
05.
dir /B D:\wzb-daten-transfer\logs\cz\*.log>templiste1.txt 
06.
 
07.
for /f "tokens=1,* delims= " %%i in (templiste1.txt) do ( 
08.
                                       	 
09.
	set zeilen=0 
10.
 
11.
	rem Zeilen zaehlen. 
12.
 
13.
	for /f "tokens=* delims= " %%k in (D:\wzb-daten-transfer\logs\cz\%%i) do ( 
14.
	set /a zeilen=!zeilen!+1 
15.
	echo !zeilen! 
16.
 
17.
18.
	 
19.
	set /a zeile_neu=!zeilen!-10 
20.
 
21.
	echo !zeile_neu! 
22.
  
23.
	for /f "tokens=* skip=!zeile_neu! delims= " %%m in (D:\wzb-daten-transfer\logs\cz\%%i) do ( 
24.
 
25.
	echo %%m>>D:\wzb-daten-transfer\logs\cz\auswertung.log 
26.
 
27.
28.
	 
29.
30.
 
Gruß
didie08
Mitglied: Skyemugen
02.05.2012, aktualisiert 18.10.2012
Aloha,

warum so viel gewurstel, unser lieber bastla hat da mal was hingekritzelt (bzw. eben die dort auch genannte tail.exe nutzen)

greetz André

P.S.: ein einfaches Nutzen von %zeile_neu% sollte das Problem beheben
Bitte warten ..
Mitglied: bastla
02.05.2012, aktualisiert 18.10.2012
Hallo didie08!

Ich würde eher so (ungetestet) an die Sache herangehen:
01.
echo on & setlocal 
02.
for /f "tokens=1,* delims= " %%i in ('dir /B D:\wzb-daten-transfer\logs\cz\*.log') do call :ProcessFile "D:\wzb-daten-transfer\logs\cz\%%i" 
03.
goto :eof                                       	 
04.
 
05.
:ProcessFile 
06.
for /f "delims=:" %%a in ('find /c /v "!!!!!"<%1') do set "zeilen=%%a" 
07.
set /a zeile_neu=zeilen-10 
08.
echo %zeile_neu% 
09.
more +%zeile_neu% %1>>D:\wzb-daten-transfer\logs\cz\auswertung.log 
10.
goto :eof
Ganz klar ist mir übrigens Deine erste Schleife (die ich einfach mal übernommen habe) nicht - eigentlich sollte die eher so aussehen:
for /f "delims=" %%i in ('dir /B D:\wzb-daten-transfer\logs\cz\*.log') do call :ProcessFile "D:\wzb-daten-transfer\logs\cz\%%i"
Übrigens: Sollte es in den Dateien Zeilen mit "!!!!!" geben, einfach eine andere Zeichenfolge, die sicher nicht enthalten ist, in der Zeile 6 des Batches verwenden ...

Grüße
bastla

[Edit] @skye
Das hätte ich vermutlich auch gefunden - aber mal leicht verändert "kritzeln" ist ja auch schön ...
[/Edit]
Bitte warten ..
Mitglied: 106009
02.05.2012 um 15:48 Uhr
gelöscht, unnötig Zeit verplempert.
Bitte warten ..
Mitglied: didie08
02.05.2012 um 17:16 Uhr
Hallo bastla

Vielen Dank für die schnelle Antwort.

Leider werden die Schleifen nicht durchlaufen. Ich habe eine echo %1>>testlog1.txt in der 2 Schleife eingebaut um das zü prufen. Diese testlog1.txt enthält nur eine Zeile.

01.
echo on & setlocal 
02.
 
03.
for /f "tokens=* delims=" %%i in ('dir /B D:\wzb-daten-transfer\logs\cz\*.log') do ( 
04.
call :ProcessFile "D:\wzb-daten-transfer\logs\cz\%%i" 
05.
goto :eof 
06.
 
07.
08.
 
09.
 
10.
:ProcessFile 
11.
echo %1>>testlog1.txt 
12.
 
13.
for /f "tockens=* delims=:" %%a in ('find /c /v "!!!!!"<%1') do ( 
14.
set "zeilen=%%a" 
15.
set /a zeile_neu=zeilen-10 
16.
echo %zeile_neu% 
17.
more +%zeile_neu% %1>>D:\wzb-daten-transfer\logs\cz\auswertung.log 
18.
goto :eof 
19.
pause 
20.
 
21.
22.
 
Gruß
didie08
Bitte warten ..
Mitglied: bastla
02.05.2012 um 17:24 Uhr
Hallo didie08!

Vorschlag: Ersetze, wenn Dir denn schon nach Änderungen ist, meine Zeile 6 durch
for /f %%a in ('find /c /v "!!!!!"^<%1') do set "zeilen=%%a"
(nötig wär's nicht [Edit] wegen des delimiters, aber das "^" fehlte dann doch sehr [/Edit]), belasse dafür den Rest meines Ansatzes so, wie ich ihn geschrieben habe und teste mal damit ...

Grüße
bastla
Bitte warten ..
Mitglied: didie08
03.05.2012 um 14:52 Uhr
Hallo Bastla.

Ich hatte das Beispiel von dir verädert weil sich garnichts getan hatte, und ich dachte ich müsste den Code noch entsprechend ergänzen.

Nachdem ich nun dienen Code unverändert mit der geänderten Zeile 6 verwendet habe, funktioniert die bat einwandfrei. Super vielen Dank dafür.

Was mich noch gerne wissen würde, warum ist das ^ so entscheidend?

Gruß
didie08
Bitte warten ..
Mitglied: Skyemugen
03.05.2012 um 15:52 Uhr
Aloha,

hmm also
tockens=
Was'n das?

greetz André

P.S.: Ohne zu escapen ^ würde da nix mit < in der Verarbeitungsklammer laufen, da macht dir der Interpreter den H. M. Murdock

offtopic ... ollidolli er innert mich mehr und mehr an Kaputtnick ... gelöscht, unnötig Zeit verplempert ... ja, das war genau seine Art
Bitte warten ..
Ähnliche Inhalte
Debian
Letzte Zeile lesen und einfügen
gelöst Frage von Fenris14Debian4 Kommentare

Guten Tag, ich versuche mich mal wieder ein wenig an Scripten und habe hier jetzt das Problem das ich ...

Batch & Shell

Mehrere txt Dateien einlesen und letzte Zeile löschen

gelöst Frage von THRILLERBatch & Shell1 Kommentar

Hallo Gemeinde, ich beschäftige mich mit folgendem Problem. Und zwar will ich aus einem Ordner mehrere Dateien einlesen und ...

Batch & Shell

Mit Batch-Datei eine Datei lesen, Zeilen ändern und als neue Datei schreiben

gelöst Frage von GeoSemBatch & Shell20 Kommentare

Hallo Ich versuche nun schon seit einiger Zeit das "kleine" Script (unter Windows 8) zum laufen zu bringen - ...

Batch & Shell

Batch um Zeichen aus erster und letzter Zeile einer TXT Datei zu löschen

Frage von Bobby0712Batch & Shell2 Kommentare

Hallo. Wie der Titel schon sagt suche ich eine möglichkeit wie ich aus einer TXT Datei aus der ersten ...

Neue Wissensbeiträge
Windows 10

USB Maus und Tastatur versagen Dienst unter Windows 10

Erfahrungsbericht von hardykopff vor 1 TagWindows 105 Kommentare

Da steht man ziemlich dumm da, wenn der PC sich wegen fehlender USB Tastatur und Maus nicht bedienen lässt. ...

Administrator.de Feedback
Update der Seite: Alles zentriert
Information von Frank vor 1 TagAdministrator.de Feedback18 Kommentare

Hallo User, die größte Änderung von Release 5.8 ist das Zentrieren der Webseite (auf großen Bildschirmen) und ein "Welcome"-Teaser ...

Humor (lol)

WhatsApp-Nachrichten endlich auch per Bluetooth versendbar

Information von BassFishFox vor 2 TagenHumor (lol)4 Kommentare

Genau darauf habe ich gewartet! ;-) Der beliebte Messaging-Dienst WhatsApp erhält eine praktische neue Funktion: Ab dem nächsten Update ...

Google Android

Googles "Android Enterprise Recommended" für Unternehmen

Information von kgborn vor 2 TagenGoogle Android3 Kommentare

Hier eine Information, die für Administratoren und Verantwortliche in Unternehmen, die für die Beschaffung und das Rollout von Android-Geräten ...

Heiß diskutierte Inhalte
Speicherkarten
Vergessliche USB-Sticks?
Frage von hanheikSpeicherkarten14 Kommentare

Ich habe in den letzten Tagen 500 USB-Sticks mit Bilddateien bespielt. Obwohl ich die Dateien mit größter Sorgfalt kopiert ...

Windows Server
NTFS Berechtigungen Ordnerstruktur
Frage von hukahu23489Windows Server11 Kommentare

Hallo, ich bin seit kurzem in einer neuen IT-Abteilung und bin über das Berechtigungskonzept des Unternehmens sehr schockiert. Ich ...

Windows Server
Standortvernetzung zu einem Strato VServer (Windows)
Frage von matzefratze81Windows Server10 Kommentare

Moin, ich komme aus einem Enterprise-Umfeld und habe den Fehler gemacht, dass ich mich auf ein kleines Unternehmen eingelassen ...

Exchange Server
NDR umleiten
Frage von isomasterExchange Server10 Kommentare

Hallo Kollege, ich habe ein Problem mit dem Exchange Server. Wir haben unsere info@ Adresse als Verteilergruppe eingebunden (so ...