dani
Goto Top

Batch - die 2. neusten Datei auslesen

Hi Biber, Hi bastla und natürlich auch an alle anderen Bastler, face-wink
ich sitze wieder mal, vor meinem Projektalptraum und blick langsam gar nichts mehr. face-sad

Und zwar soll per Batch aus einem Verzeichnis von der 2. neusten Datei der Dateiname ausgelesen werden. Hier mal ein kl. Muster des Verzeichnisinhaltes:
D:\Perl\bin\perl.exe awstats.pl config=netfusionkc.com -update -logfile=D:\Domains\netfusionkc.com\logs\W3SVC6238\ ex030801.log
D:\Perl\bin\perl.exe awstats.pl config=netfusionkc.com -update -logfile=D:\Domains\netfusionkc.com\logs\W3SVC6238\ ex030802.log
D:\Perl\bin\perl.exe awstats.pl config=netfusionkc.com -update -logfile=D:\Domains\netfusionkc.com\logs\W3SVC6238\ ex030803.log
D:\Perl\bin\perl.exe awstats.pl config=netfusionkc.com -update -logfile=D:\Domains\netfusionkc.com\logs\W3SVC6238\ ex030804.log
D:\Perl\bin\perl.exe awstats.pl config=netfusionkc.com -update -logfile=D:\Domains\netfusionkc.com\logs\W3SVC6238\ ex030805.log
D:\Perl\bin\perl.exe awstats.pl config=netfusionkc.com -update -logfile=D:\Domains\netfusionkc.com\logs\W3SVC6238\ ex030806.log
D:\Perl\bin\perl.exe awstats.pl config=netfusionkc.com -update -logfile=D:\Domains\netfusionkc.com\logs\W3SVC6238\ ex030807.log
D:\Perl\bin\perl.exe awstats.pl config=netfusionkc.com -update -logfile=D:\Domains\netfusionkc.com\logs\W3SVC6238\ ex030808.log
Mein Ansatz geht ganz klar Richtung Schleife. face-smile Anzeigen würde ich Dateien in Kurzschreibform per dir /b. Jedoch nun geht es los, wie sortiere ich die Files - Die neusten Files am Anfang oder am Ende. Denn eine Schleife wirklich zu unterbrechen nach x Durchläufe gibt es hier ja nicht.


Gruß
Dani

Content-Key: 88183

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

Ausgedruckt am: 28.03.2024 um 10:03 Uhr

Mitglied: Kallinger
Kallinger 21.05.2008 um 15:30:24 Uhr
Goto Top
HI,

so wie ich das verstanden habe, willst du also hier den Namen von "ex030802.log" haben ?


__
** Grüße Kallinger
Mitglied: bastla
bastla 21.05.2008 um 15:38:47 Uhr
Goto Top
Hallo Dani!

Etwa so (wenn es nach Dateidatum gehen soll, sonst eben mit /o-n):
@echo off & setlocal
set "Pfad=D:\Domains\netfusionkc.com\logs\W3SVC6238\*.log"  

set Zweite=
for /f "delims=" %%i in ('dir /b /o-d /a-d "%Pfad%"^|more +1') do if not defined Zweite set "Zweite=%%i"  
echo %Zweite%

Grüße
bastla
Mitglied: Dani
Dani 21.05.2008 um 16:35:19 Uhr
Goto Top
Hi Bastla,
war mir fast klar, dass es nicht "einfach" (mein Niveau) geht. Ich werde heute Nacht mal die Task einstellen und dir nächsten Montag Rückmeldung geben.

@knallinger
Ne, dass wäre die 2. älteste Datei. face-wink Schau mal auf den Dateinamen - YY-MM-DD.log.


Gruß
Dani
Mitglied: miniversum
miniversum 21.05.2008 um 17:37:28 Uhr
Goto Top
"Etwas" einfacher gehts noch so:
@echo off & setlocal
set "Pfad=D:\Domains\netfusionkc.com\logs\W3SVC6238\*.log"  

set Zweite=
for /f "skip=1 delims=" %%i in ('dir /b /o-d /a-d "%Pfad%"') do if not defined Zweite set "Zweite=%%i"  
echo %Zweite%