Zu einem vorgegebenen Datum das vorhergehende Istdatum aus einer Logdatei ermitteln

Mitglied: mycroftone

mycroftone (Level 1) - Jetzt verbinden

19.01.2011, aktualisiert 20.01.2011, 3435 Aufrufe, 12 Kommentare

Hallo Ich höffe hier auf Hilfe im folgende Sachverhalt

Ich habe eine /mehrere Dateien mit Einträgen von verschiedene Tagen. Also eine Rechner kann mehrere MAC Adresse im Lauf der Zeit haben.

z.B.
File1
oder

File2
Wobei sich die Anzahl der Zeile andert und die eingetragen Tag / (Datums) variieren

Und jetzt möchte ich per Batch herausfinden welcher Eintrag an einen andere vorgebene Datum zu dem Zeitpunkt am nächsten kommt.


Also wenn ich z.b. für File 1 das Datum 17.11.2009 angebe dann möchte ich das er mir sagt das der nächst älter Eintrag der 12.10.2009 ist.

Rechner1 | 00-14-38-51-03-11 | 12.10.2009 |

der Eintrag 03.12.2009 ist zwar der nähre aber das ist ja von einem neuer Rechner und bis dahin hatte der Rechner die MAC Adresse 00-17-A4-F6-C0-2F
also ist auch am 17.11.2009 die Netzwerkkarte mit der MAC Adresse 00-17-A4-F6-C0-2F im Rechner da die ja am 12.10.2009 in den Rechner kam.

Somit ist für das Datum 17.11.2009 und File 1 das richtige Ergebniss -> Rechner1 | 00-14-38-51-03-11 | 12.10.2009 |


Bei zwei Einträgen habe ich versucht die Einträge Jahr Monat und Tag herauszuziehen in Variblen zu schreiben und die mit Größer/Kleine Gleich zu Vergleichen.

Aber ich habe festgestellt es gibt Dateien mit mehr als zwei Einträgen.
Und spätestens da bin ich am ende meiner Weißheit.

Ich denke mir die Datei in einer Schleifen durchgehen und dann das Datum mit jeden Einzelen vergleichen.


Aber leider weiß ich nicht genau wie ich das in Batch technisch umsetzten soll.
Ich hoffe auf eure Unterstützung.

mycroftone
Kommentar vom Moderator Biber am 20.01.2011 um 08:20:35 Uhr
Original-Titel "Näheste Datum nächst älteres Datum heraussuchen" geändert.
Mitglied: Biber
19.01.2011 um 18:54 Uhr
Moin mycroftone,

Zitat von @mycroftone:
Was noch besser währ währe der nächste älter
...
... weil am 12.10.2009 kamm ein neuer Rechner und bis dahin ..

Bei zwei Einträgen habe ich versucht die Einträge Jahr Monat und Tag herauszuziehen in Variblen zu schreiben
und die mit Größer/Kleine Gleich zu Vergleichen.
...
Und spätestens da bin ich am ende meiner Weißheit.

Ich bitte dich allerinständigst, doch in deinem Beitrag - bei dem es sicherlich ganz schnell gehen musste weil der Hund raus wollte und der Bäcker gleich zumacht etc -

... die Anforderungsformulierung zu überarbeiten.


Im Groben verstehe ich die Zielrichtung (glaube ich) - aber ich hätte doch nach zwei Zeilen schon laut gerufen :
"Haben wir dafür nicht früher mal ein Multiplan oder Lotus 1-2-3 oder Excel 95 eingekauft und liegt das nicht noch in der Garage?"

WTF muss denn die "Ermittlung des nächsthöheren Folgedatums" mit Batch erfolgen -
... oder soll das irgendwo an den Rand eines bestehenden Prozesses geflanscht werden?

Grüße
Biber
Bitte warten ..
Mitglied: mycroftone
19.01.2011 um 19:39 Uhr
Hallo Biber

Ja du hast völlig recht wenn du sagst diese Anforderung ( frage nach Hilfe ) kann man besser mit einer Tabellenkalkulation lösen.
Aber wie du auch schon vermutet hast ist das nur ein Teilprozess.


Ich habe eine Riese Tabelle / ein riesige Logfile das auch die MAC Adressen von 50 Rechner der Letzen 4 Jahre beinhaltet.

Und die MAC Adresse der Rechner brauche ich jetzt in einer anderen Datei.

Deswegen habe ich eine Batch Datei geschreiben in der ich mit findstr den Rechner Name herausfilter und dann aus der Zeile die MAC Adresse. Dabei habe ich festgestellt das es Rechner gibt die Unterschiedlich MAC Adressen haben. Also der Rechner irgendenwann getauscht wurde nur der Rechnername blieb.

Und in der neuen Tabelle gibt es auch ein Datum.

Also habe ich jetzt mit Findstr neune Dateien angelegt für einen Rechner dann habe festgestellt das es manchmal 2 Zeile gibt. ( In der also der Rechnername blieb aber die MAC Adresse sich geändert hat ) Jetzt habe ich so ungefahr 200 Zeilen Code geschrieben um herauszufinden welche MAC Adresse zu dem Datum die richtge ist. War schon ganz Stolz das das funktioniert.

Aber beim weiter durchprüfen der Batchdatei habe ich festgestellt das es auch Rechnerdateien mit 3 oder 4 Einträgen gibt also der Rechnername drei oder 4 physisch ander Rechner hatte oder ander Netzwerkkarten.

Da ist mir eingefall das die Leute aus diesem Forum für Lösung bei dennen ich z.b 50 -60 Zeile Cod braucht einen 2-3 Zeiler daherbrachten.

Also es ist nur eine Frage ob hier jemand in Batch oder auch in gekapselten VBS script
zu dem Datum aus der LogDatei den Eintrag mit dem nächstälteren Dateum zu finden.


Also ich hoffe die Anforderung/ Bitte für Hilfe dieses Sachverhalt und das Umfeld sind ist jetzt klarer geworden.

mycroftone
Bitte warten ..
Mitglied: bastla
19.01.2011 um 21:17 Uhr
Hallo mycroftone!

Unter der Annahme, dass
Also wenn ich z.b. für File 1 das Datum 09.12.2009 angebe dann möchte ich das er mir sagt das der näheste Eintrag der 12.10.2209 ist.
nicht wirklich so gemeint war, sondern das Datum 03.12.2009 richtig und somit 12.10.2009 das eigentlich gesuchte vorhergehende Datum ist, könnte das wie folgt gehen:

Wenn Du für das Format
ohnehin selbst verantwortlich bist, dann modifiziere den Batch so, dass in der Datei
steht - die Umwandlung des Datums ginge dazu etwa so:
- und das Ganze reduziert sich danach tatsächlich auf relativ wenige (und nur oberflächlich getestete) Zeilen (ich verteile nur der Übersicht wegen auf ein paar mehr davon):
Wenn das Ergebnis Deinen Intentionen entspricht, sollten die Übergabe des Stichtages per Aufrufparameter bzw Formatierung der Ausgabe dann ja nicht mehr unter "Hexerei" fallen ...

Grüße
bastla
Bitte warten ..
Mitglied: pieh-ejdsch
19.01.2011 um 22:07 Uhr
Moin mycroftone,
dann möchte ich das er mir sagt das der näheste Eintrag der 12.10.2209 ist.
ist aber noch ne laaange Zeit bis dahin!

wenn diese Dateien Log-Files sind wird doch immer unten dran geschrieben, dass heisst der letzte Eintrag eines Rechner1 ist der Aktuellste Eintrag des Rechner1

demnach wäre nur eine Zeile Code nötig

wenn nichts im "neuesLog.txt" ankommt dann sehn wir weiter

Ps. Deine Schreibstil ist - naja...

[Edit]ich sollte mir abgewöhnen zwischendurch andere Sachen zu machen...[/Edit]

Gruß Phil
Bitte warten ..
Mitglied: mycroftone
19.01.2011 um 23:05 Uhr
Hallo Bastla

Danke für das Feedback mit dem Lösungsvorschlag.

Du und Biber hatten recht mein Text oben im ersten Beitrag war wirklich etwas Fehlerhaft bezüglich der verwendeten Datumsamgaben.
Aber jetzt habe ich er korriegiert.
Nur die Annahe das der Suchbegriff der 3.12.2009 Richtige ist stimmt nicht ich habe extra ein Datum gewählt das nicht auch in der Datei vorhanden ist sonder ein X-Beliebiges.
Aber der 12.10.2009 ist dann wie du richtig sagtest das gewünschte Ergebnis.

Also werde ich die Ausgabe nach File1 aus meiner eigentlichen Batchdatei
In einer kleine For /K Schleife Zeile für Zeile File1 mit
Umwandeln und nach z.B. D:\File1-1.txt speichern

Dann deine Batchschnippsel als Unterroutine

Dann bekomme ich in meine Batchdatei der Wert %Stichtag% zurück

Und kann dann mit findstr "%Stichtag%" "file1" meine richtige MAC Adresse für den richtigen Zeitraum herausfiltern.


Vielen dank schon im vorraus.

Ich werde es so bald wie möglich live austest.

mycroft
Bitte warten ..
Mitglied: mycroftone
19.01.2011 um 23:09 Uhr
Hallo pieh-ejdsch

Nein davon das der unterste Eintrag auch der vom neuesten Datum ist kann ich leider nicht ausgehen.
Nur das in der Datei festgehalten Datum ist der alleinige Anhalt wie neu die Zeile ist.

mycroftone
Bitte warten ..
Mitglied: mycroftone
19.01.2011 um 23:16 Uhr
Hallo Biber

Du hattest recht ich habe den Beitrag recht kurz vor Feierabend geschreiben. Und jetzt erst in einem Ruhigen Moment zu Hause habe gesehen das ich falsche Werte für Datumsangaben verwendet habe. Anhand dere man schlecht die Aufgabenstellung erraten konnte.

Aber Bastel hat mir einen Lösungsweg angezeigt denn ich sobald ich wieder in der Arbeit bin ausprobieren werde.

( Also übermorgen Morgen hat mein Sohn seinen 2ten Geburtstag )
Bitte warten ..
Mitglied: bastla
19.01.2011 um 23:58 Uhr
Hallo mycroftone!
Nur die Annahe das der Suchbegriff der 3.12.2009 Richtige ist stimmt nicht ich habe extra ein Datum gewählt das nicht auch in der Datei vorhanden ist sonder ein X-Beliebiges.
Das war mir klar - nur war zunächst nach dem ersten davor liegenden Datum, und dann nach dem vorletzten gefragt - und das waren nun mal, ausgehend vom ursprünglichen 9.12., der 3.12. bzw 12.10.
Wenn Dir jetzt das jeweils letzte Datum vor dem Stichtag genügt, verkürzt sich der Batch sogar nochmals:
Dann bekomme ich in meine Batchdatei der Wert %Stichtag% zurück

Und kann dann mit findstr "%Stichtag%" "file1" meine richtige MAC Adresse für den richtigen Zeitraum herausfiltern.
Sollte ja gar nicht mehr nötig sein, wenn Du die "file1.txt" meinem Vorschlag entsprechend erstellst, da ja dann ohnehin die gesamte Zeile, also zB
in der Variablen %Letzter% steht und somit die MAC-Adresse zB mit
(als Ersatz der oder ergänzend zur Zeile 9) ermittelt werden kann ...

Grüße
bastla
Bitte warten ..
Mitglied: bastla
20.01.2011 um 00:04 Uhr
@PH
... und ich hatte mir (auch als edukative Maßnahme) das Verabeiten der original formatierten Datei verkniffen ... ;-) face-wink

Grüße
bastla
Bitte warten ..
Mitglied: mycroftone
20.01.2011 um 00:14 Uhr
Hallo Bastel

Das ist das was ich meinte ich hatte jetzt umständlich für meinen 4 Zeilen irgendwie noch eine Schleife um meine 200 Zeile für das entscheiden für dien eine oder die andere Zeile gebastelt . Das hätte nochmal länger gedauert. Und je länger desto Fehleranfälliger.

Und meine ist ja im Kerne doch wieder nur ein Einzeiler. Also erstmal danke.
Bitte warten ..
Mitglied: Biber
29.01.2011 um 15:11 Uhr
Sach ma, mycroftone,

hat sich denn dein Sohn inzwischen von der wilden Party erholt, ist der Senf schon von der Decke gekratzt und neue Lampenschirme gekauft worden?

Und hast du jetzt wieder Luft für ein endgültiges Abhaken oder ein weiteres Vorantreiben dieses Beitrags?

Grüße
Biber
Bitte warten ..
Mitglied: mycroftone
29.01.2011 um 16:41 Uhr
Hallo Biber

Habe ich total vergessen. Sorry. Viel Luft für anderes hatte ich die Woche nicht.

Danke Bastel

Habe deine Zeilen wunderbar bei mir einbauen können.
Nur wenn das Datum niedriger ist als der Letze Eintrag der Liste dann habe ich noch ein paar Zeilen hinzugefügt
das er dann denn letzen nehmen soll.
Aber wie gesagt hier gibt es einfach ein paar Leute die ein Problem für das ich 200 Zeilen brauche
das ganze manchmal echt in ein / zwei Zeilen umsetzen können.

Also nochmal besten Dank die Problemstellung kann als gelöst betrachtet werden.

mycroftone
Bitte warten ..
Heiß diskutierte Inhalte
LAN, WAN, Wireless
Switch läuft, ist aber nicht erreichbar
gelöst AndiPeeVor 20 StundenFrageLAN, WAN, Wireless19 Kommentare

Hallo zusammen, mein Problemfall einleitend kurz umrissen: Privates Netzwerk Es funktioniert grundsätzlich, allerdings habe ich immer mal ein paar Ausfälle im WLAN-Netzwerk und bin ...

MikroTik RouterOS
Simples VLAN bringt mich zur Verzweiflung
gelöst Daniel26Vor 9 StundenFrageMikroTik RouterOS27 Kommentare

Moin, ich bin sehr neu im Mikrotik-Bereich, aber schon dabei, aufzuegeben. Wir verbauen in unserer Hardware Switche von Mikrotik. Bisher waren da Netgear-Teile drin, ...

Windows Netzwerk
Sporadisch kein Netz auf mehreren Win10-Maschinen
SolarflareVor 1 TagFrageWindows Netzwerk6 Kommentare

Hallo, ich habe seit Monaten einen eigenartigen Effekt in unserem Windows-Netz. Windows-Domäne mit ca. 100 Maschinen, alle Clients aktuelles Windows 10. Die Maschinen hängen ...

VB for Applications
Auf SQL Datenbank schreiben welche Sich im Firmennetzwerk befindet
RSST-SORVor 1 TagFrageVB for Applications12 Kommentare

Hallo Ich habe ein funktionierendes VBA Makro im EXCEL welches mit: conn.Open "driver={SQL Server};" & _ "server=RSST-OFFICEIII\RSSTSQLSERVER;database=RSSTZeiterfassung;" Daten in die Tabelle schreibt Nun würde ...

Router & Routing
AVM IPSEC Standortkopplung - (statische?) IP-Adressen im Remote-Netzwerk
gelöst NichtsnutzVor 1 TagFrageRouter & Routing8 Kommentare

Hallo ins Forum, hallo aqui, Alle Fritten-Verweigerer und Freunde der Kommandozeile mögen diese Zeilen bitte mit einem überlegenem Lächeln ignorieren: Seit Monaten arbeiten wir ...

Windows 10
SMB Performance VPN
Guhl22Vor 1 TagFrageWindows 103 Kommentare

Hallo zusammen, wir stellen bei uns in der Firma ein sehr merkwürdiges Phänomen fest. Zugriffe über VPN auf gemappte Netzlaufwerke (über vbs Logon Skript ...

E-Mail
Alternative zu horde webmail
fisch56Vor 20 StundenFrageE-Mail6 Kommentare

Hallo, ich habe das horde webmail auf meinem Server, macht allerdings Probleme. Suche daher eine Alternative. Das Postfach hat viele Unterordner, die z.B. bei ...

Outlook & Mail
Outlook Ansicht
gelöst Kisters.SolutionsVor 1 TagFrageOutlook & Mail9 Kommentare

Hallo zusammen, seit kurzem sieht der Posteingang im Outlook 2019 eines Kollegen plötzlich anders aus. Standard ist das die ungelesenen Mails mit einem blauen ...