Dateidatum vergleichen .CMD

Hallo,
ich möchte in einem .CMD Shellscript das Alter zweier Dateien vergleichen (Datum und Uhrzeit). In etwa so:
IF Alter1 LSS Alter2 GOTO _weiter
Ich habe mit mal das Tool ForFiles.exe runtergeladen. das sieht vielversprechend aus aber ich hab es noch nicht hinbekommen.
Hat jemand einen Tip?

Das Problem hat sich erledigt!
Ich habe eine Lösung gefunden.

Das Problem hat sich erledigt!
Ich habe eine Lösung gefunden.

Hallo,

das freut mich fuer dich. Koenntest du, fuer nachfolgende Archivleser, deine Loesung auch mal posten?

Ciao! Bjoern

Koenntest du, fuer nachfolgende Archivleser,
deine Loesung auch mal posten?

Na klar,
ich weiss nicht ob das die einfachste Lösung ist. Wenn jemand was einfacheres weiss bitte mal hier posten.

  1. Lösung (wenn die beiden Files unterschiedliche Namen haben):

echo off
dir test1.txt, test2.txt > dir.txt
for /F "tokens=1-5 delims=.: " %%i in (‚findstr test1 dir.txt‘) do set DATE1=%%k%%j%%i-%%l%%m
for /F "tokens=1-5 delims=.: " %%i in (‚findstr test2 dir.txt‘) do set DATE2=%%k%%j%%i-%%l%%m
del dir.txt
echo DATE1(test1.txt) = %DATE1%
echo DATE2(test2.txt) = %DATE2%
if %DATE1% GTR %DATE2% echo test1 ist juenger als test2.txt
if %DATE1% EQU %DATE2% echo test1.txt und test2.txt sind gleich alt
if %DATE1% LSS %DATE2% echo test1.txt ist aelter als test2.txt

  1. Lösung (Die Files haben gleiche Namen stehen aber in unterschiedlichen Verzeichnissen):

rem echo off
dir test.txt > dir1.txt
dir test\test.txt > dir2.txt
for /F "tokens=1-5 delims=.: " %%i in (‚findstr test dir1.txt‘) do set DATE1=%%k%%j%%i-%%l%%m
for /F "tokens=1-5 delims=.: " %%i in (‚findstr test dir2.txt‘) do set DATE2=%%k%%j%%i-%%l%%m
del dir1.txt
del dir2.txt

echo DATE1(test1.txt) = %DATE1%
echo DATE2(test2.txt) = %DATE2%
if %DATE1% GTR %DATE2% echo test1 ist juenger als test2.txt
if %DATE1% EQU %DATE2% echo test1.txt und test2.txt sind gleich alt
if %DATE1% LSS %DATE2% echo test1.txt ist aelter als test2.txt

Es ist in beiden Fällen darauf zu achten das die Filenamen in jedem dir.txt nur einmal vorkommen (dir.txt vorher ansehen und gegebenenfalls Filenamen vorher aendern).
Der Bindestrich in %DATE1% bzw. %DATE2% dient dazu das der IF Vergleich auf String-Basis ausgeführt wird. Ist dieser nicht vorhanden wird die Variable als numerischer Wert behandelt und es kommt zu Überlaeufen.

1 Like