Neueste Datei mit Batch suchen
Ein herzliches Hallo an die Teilnehmer des Forums.
Leider komme ich mit meinen batch/dos-Kenntnissen nicht mehr weiter.
Evtl. kann mir ja hier jemand helfen.
Folgende Problematik:
Auf der Festplatte (Win7) befinden sich in div. Unterverzeichnissen mehrmals die gleiche, fest definierte Datei (z.B. "datei.dat"), aber mit unterschiedlichen Änderungsdatum-Daten.
Mittels Batch sollte nun die Dateien gesucht und gefunden werden und nur von der Neuesten der diesbezügliche Pfad als Variable ausgegeben werden.
Ich habe versch. Ansätze mit dir/s in Verbindung mit findstr verfolgt, bringe dies dann aber mit einer for-do Schleife nicht zusammen.
Evtl. hat jemand eine gute Idee?
Viele Grüße
Thilo
Leider komme ich mit meinen batch/dos-Kenntnissen nicht mehr weiter.
Evtl. kann mir ja hier jemand helfen.
Folgende Problematik:
Auf der Festplatte (Win7) befinden sich in div. Unterverzeichnissen mehrmals die gleiche, fest definierte Datei (z.B. "datei.dat"), aber mit unterschiedlichen Änderungsdatum-Daten.
Mittels Batch sollte nun die Dateien gesucht und gefunden werden und nur von der Neuesten der diesbezügliche Pfad als Variable ausgegeben werden.
Ich habe versch. Ansätze mit dir/s in Verbindung mit findstr verfolgt, bringe dies dann aber mit einer for-do Schleife nicht zusammen.
Evtl. hat jemand eine gute Idee?
Viele Grüße
Thilo
Please also mark the comments that contributed to the solution of the article
Content-Key: 254350
Url: https://administrator.de/contentid/254350
Printed on: April 26, 2024 at 08:04 o'clock
4 Comments
Latest comment
Hallo Thilo,
machst du beispielsweise so:
"ordner" ist der Startordner ab dem alle Unterordner nach der "datei.dat" durchsucht werden sollen. Die neueste Datei wird dann in der Variablen %datei% gespeichert.
Grüße Uwe
machst du beispielsweise so:
"ordner" ist der Startordner ab dem alle Unterordner nach der "datei.dat" durchsucht werden sollen. Die neueste Datei wird dann in der Variablen %datei% gespeichert.
@echo off & setlocal
set "ordner=C:\temp"
set datei=
for /f "delims=" %%a in ('dir /b /s /a-d /o-d "%ordner%\datei.dat" 2^>nul') DO @(
if not defined datei set "datei=%%a"
)
echo %datei%
Hallo thilo-55, willkommen im Forum.
Ich habe mal versucht das Dateidatum als Timestamp neu zusammen zu setzen und über SORT laufen zu lassen. Funktioniert so bei mir (Win7).
Grüße
rubberman
Leider ist es so, dass augenscheinlich "irgendeine" datei.dat ausgegeben wird - zumindest auf dem Win-XP-Rechner
"Irgendeine" ist nicht ganz richtig. Es ist die erste gefundene Datei. Die Option /o sortiert zwar, aber immer nur innerhalb eines Verzeichnisses.Ich habe mal versucht das Dateidatum als Timestamp neu zusammen zu setzen und über SORT laufen zu lassen. Funktioniert so bei mir (Win7).
@echo off &setlocal
set "ordner=C:\temp"
set "datei=datei.dat"
set "newest="
for /f "tokens=1*" %%f in (
'(
for /r "%ordner%" %%i in (%datei%^) do (
for /f "tokens=1-5 delims=.: " %%j in ("%%~ti"^) do echo %%l%%k%%j%%m%%n "%%~i"
^)
^)^|sort'
) do for %%h in (%%g) do set "newest=%%~h"
echo "%newest%"
pause
rubberman