tho1978
Goto Top

Batch zum finden der aktuellsten Datei in Verzeichnissen

Nabend,

wie finde ich mit einer Batch Datei die aktuellste Datei in verschiedenen Unterverzeichnissen ?

also so
DIR
SUB_DIR1 (Januar)
SUB_DIR2 (Februar)
SUB_DIR3 (März ) usw usw

und daraus die aktuellste Datei

Danke und Gruß

Thorsten

Content-ID: 98019

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

Ausgedruckt am: 08.11.2024 um 06:11 Uhr

bastla
bastla 28.09.2008 um 22:56:04 Uhr
Goto Top
Hallo tho1978!

Am Beispiel des "SUB_DIR1":
@echo off & setlocal
set Neueste=
for /f "delims=" %%i in ('dir /b /od /a-d "SUB_DIR1\*.*" 2^>nul') do set "Neueste=%%i"  
if defined Neueste echo %Neueste%
Grüße
bastla
tho1978
tho1978 28.09.2008 um 22:57:24 Uhr
Goto Top
danke, ich meine aber übergeordnet in allen sub_dir´s die neuste datei finden

gruß

tho
bastla
bastla 28.09.2008 um 23:15:40 Uhr
Goto Top
Hallo tho1978!

Dann bitte ganz präzise: Auch im Ausgangsverzeichnis oder nur in den Subdirs, oder auch in den SubSubdirs und weiter drunter?

Grüße
bastla
tho1978
tho1978 28.09.2008 um 23:18:00 Uhr
Goto Top
hallo,

also ich will in allen subdirs suchen, die unter dem hauptverzeichniss sind. nur in den subdirs sind dateien, im hauptverzeichniss sind keine dateien und daher will ich nun in den subdirs nach der aktuellsten datei suchen.
unterhalb der subdirs gibt es keine weiteren verzeichnisse.
also
sub dir 1
sub dir 2 usw usw


gruß

tho
bastla
bastla 28.09.2008 um 23:28:51 Uhr
Goto Top
Hallo tho1978!

Na gut, dann vielleicht so:
@echo off & setlocal
set "StartDir=D:\HauptDir"  

set T=%temp%\DirList.txt
if exist %T% del %T%
for /d %%d in ("%StartDir%\*.*") do (  
    for /f "delims=" %%i in ('dir /b /a-d "%%d\*.*" 2^>nul') do call :ProcessFile "%%d\%%i"  
)
set Neueste=
for /f "tokens=1*" %%i in ('sort %T%') do set "Neueste=%%j"  
del %T%
if defined Neueste echo %Neueste%
goto :eof

:ProcessFile
set D=%~t1
>>%T% echo %D:~6,4%%D:~3,2%%D:~,2%%D:~11,2%%D:~14,2% %1
goto :eof
Bitte beachten: Das Startverzeichnis muss ohne abschließenden "\" angegeben werden, auch wenn es ein Root-Verzeichnis sein sollte - dann eben nur zB
set "StartDir=D:"  
verwenden.

Grüße
bastla