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

Aus LogDatei 2 Eintrage mit Datum Auslesen und den Eintrag mit dem Neuere Datum übernehmen.

Frage Entwicklung Batch & Shell

Mitglied: mycroftone

mycroftone (Level 1) - Jetzt verbinden

22.12.2009, aktualisiert 16.02.2010, 3727 Aufrufe, 5 Kommentare

Hallo Zusammen

Ich habe hier zwar schon einige Beitrage zu Datei alte als ( also in gewisser weise auch 2 Datems vergelichen ) gelesen .
Aber immer war klar oder nicht interressant welches Datum das Jüngere ist und der Zeitliche Unterschied er interressant.

Ich habe aber eine LogDatei mit 2 Einträgen wo nicht klar ist welcher der Jüngere ist auch ist der Zeitunterschied eigentlich nicht wichtig.

Etwas Konkreter ich habe die 6 Variablen Datum1 und Zeit1 Eintrag1 Datum2 und Zeit2 Eintrag 2.

In Beiden Zeilen steht.

21.12.2009 14:01 Download OK
21.12.2009 20:14 Download OK

Ich will jetzt nur den Jungeren Eintrag also

21.12.2009 20:14 Download OK weiterverarbeiten


Oder wie im folgenden Beispiel

19.12.2009 18:05
18:12.2009 07:32

19:12.2009 18:05 der Jüngere Eintrag ist ich also den weiterverarbeiten will.

Natürlich kann man jetzt Sagen na ist doch bei einer Logdatei ganz Einfach der weiter unten stehende Eintrag ist der Jüngere.
Aber da ich dieses Logdatei aus mehreren anderen Zusammenbaue kann man es nicht sagen.


Kann man es irgendwie errechnen welcher Eintrag der Jüngere Ist
Mitglied: bastla
22.12.2009 um 17:18 Uhr
Hallo mycroftone!

Der folgende Batch sollte auch aus mehr als 2 (mit dem beschriebenen Timestamp beginnenden) Zeilen den jüngsten Eintrag finden:
01.
@echo off & setlocal 
02.
set "Log=D:\Log.txt" 
03.
 
04.
set "J=0" 
05.
set "JZeile=" 
06.
for /f "usebackq delims=" %%i in ("%Log%") do set "Zeile=%%i" & call :ProcessLine 
07.
if not defined JZeile echo Keine Daten! & goto :eof 
08.
echo Juengster Eintrag: %JZeile% 
09.
goto :eof 
10.
 
11.
:ProcessLine 
12.
for /f "tokens=1-5 delims=.: " %%a in ("%Zeile%") do if "%%c%%b%%a%%d%%e" gtr "%J%" (set "J=%%c%%b%%a%%d%%e" & set "JZeile=%Zeile%") 
13.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: mycroftone
11.02.2010 um 22:04 Uhr
Danke Bastel

Funktioniert wunderbar habe alles beides in eine Underfunktion von meiner Batch eingefügt alles bestens
Bitte warten ..
Mitglied: mycroftone
16.02.2010 um 12:22 Uhr
Hallo Bastel

Habe jetzt noch die Sekunden mit in den Einträgen weil ich festgestellt haben das es dann doch einigegleiche einträge gibt.

Aber leider ignoriert dein Script die Sekunden.

Hier ein Beispiel.

13.01.2010 22:16:09 PROD_IS_Full_0110_SW
13.01.2010 22:16:46 PROD_IS_Full_0110_SW
Juengster Eintrag: 13.01.2010 22:16:09 PR



Wie muss man es anpassen damit er auch dort noch einen Unterscheidung zwischen den zwei Zeilen macht.

Kannst du mir auch nochmal helfen
Bitte warten ..
Mitglied: bastla
16.02.2010 um 13:00 Uhr
Hallo mycroftone!

Wenn der Timestamp nicht mehr nur 5, sondern jetzt 6 Bestandteile ("tokens") hat, sollte folgende Änderung genügen:
for /f "tokens=1-6 delims=.: " %%a in ("%Zeile%") do if "%%c%%b%%a%%d%%e%%f" gtr "%J%" (set "J=%%c%%b%%a%%d%%e%%f" & set "JZeile=%Zeile%")
Grüße
bastla
Bitte warten ..
Mitglied: mycroftone
16.02.2010 um 13:28 Uhr
Hallo Bastle

Ja super habe jetzt folgende Subroutine in meine Batchdatei und die funktioniert wie von euch gewohnt jetzt einfach.


01.
  
02.
 
03.
:Juengster-Eintrag 
04.
 
05.
echo. 
06.
echo Suche Juengsten Eintrag in !Log-search-newest! 
07.
echo. 
08.
echo ============================================= 
09.
type %Log-search-newest% 
10.
echo ============================================= 
11.
echo. 
12.
 
13.
 
14.
set "J=0" 
15.
set "JZeile=" 
16.
for /f "usebackq delims=" %%i in ("%Log-search-newest%") do set "Zeile=%%i" & call :ProcessLine 
17.
if not defined JZeile echo Keine Daten! & goto :eof 
18.
echo. 
19.
echo Juengster Eintrag: %JZeile% 
20.
echo. 
21.
set newest-Entry=%JZeile% 
22.
 
23.
 
24.
echo.  
25.
echo Variablen mit Ausfuehrungszeichen 
26.
echo. 
27.
echo "!newest-Entry!" 
28.
echo. 
29.
 
30.
 
31.
goto :eof 
32.
 
33.
:ProcessLine 
34.
for /f "tokens=1-6 delims=.: " %%a in ("%Zeile%") do if "%%c%%b%%a%%d%%e%%f" gtr "%J%" (set "J=%%c%%b%%a%%d%%e%%f" & set "JZeile=%Zeile%") 
35.
goto :eof 
36.
 
37.
 
Besten Dank nochmal

mycroftone
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Batch xls nach aktuellem Datum auslesen und email senden (14)

Frage von michi-ffm zum Thema Batch & Shell ...

Microsoft Office
Excel Online Datum (8)

Frage von MegaGiga zum Thema Microsoft Office ...

Batch & Shell
Dateien nach Datum verschieben (4)

Frage von LOWTIM zum Thema Batch & Shell ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Windows 10
Windows für Privatanwender "nicht mehr handhabbar" (35)

Frage von FA-jka zum Thema Windows 10 ...

CMS
Lokales Wordpress im LAN - wie aufsetzen? (15)

Frage von Static zum Thema CMS ...

LAN, WAN, Wireless
Komplett neues Netzwerk, Ubiquiti WLAN, Router, Switch (15)

Frage von Freak-On-Silicon zum Thema LAN, WAN, Wireless ...

Backup
Backup Wochen- Monats- Jahressicherung (13)

Frage von Meterpeter zum Thema Backup ...