Batch -> Dateialter prüfen

>|Sh4d0w|<

Commander
Registriert
Jan. 2009
Beiträge
2.537
Hallo,
ich habe aktuell eine Batch, die prüft, ob ein PC online ist, und bei offline-Zustand nach 25 Minuten runterfährt.
Nun möchte ich das noch mit einer Bedingung koppeln, falls eine Datei älter als 7 Tage ist. Wie mache ich das am besten?

So in etwa: if [Datei] < 7 Tage als das heutige DANN set var=1 SONST set var=2
 
Versuche es so:
Code:
@echo off
cls

set "Verzeichnis=%~dp0"
set "Typ=txt"
set "Datum=20.06.2014"

pushd %Verzeichnis% || goto :eof

for %%i in ("%Verzeichnis%*.%Typ%") do (
    REM gibt Datei + Datum aus
    REM @echo %%i %%~ti - %Datum%
    if %%~ti LEQ %Datum% @echo %%i ist aelter
)
Befehle#Syntaxvergleiche

Edit:
Hier noch mal eine Alternative um exakt nur den Erstellungstag einer Datei zu lesen und vergleichen.
In %vTag% ist der Vergleichstag, in %Tag% ist der ausgelesene Erstellungstag, drin.
Code:
@echo off
cls

set "Verzeichnis=%~dp0"
set "Typ=txt"
set "vTag=21"
set "Datei=test.txt"

pushd %Verzeichnis% || goto :eof
for /f "tokens=1 delims=. " %%i in ('dir /t:c %Verzeichnis%*.%Typ% /t:c^|findstr /i /l "%Datei%"') do set Tag=%%i
:: Monat "tokens=2" und Jahr "tokens=3"
echo Erstellungstag: %Tag%

if %vTag% LEQ %Tag% @echo Datei ist aelter & echo mach das 
if %vTag% GTR %Tag% @echo Datei ist junger & echo mach jenes

Edit #2:
Du kannst das natürlich auch mit dem aktuellen Tag machen (%date:~0,2%) und die 7 Tage Differenz von Erstellungsdatum ziehen
Code:
@echo off
cls
 
set "Verzeichnis=%~dp0"
set "Typ=txt"
set "vTag=%date:~0,2%"
set "Datei=test.txt"
 
pushd %Verzeichnis% || goto :eof
for /f "tokens=1 delims=. " %%i in ('dir /t:c %Verzeichnis%*.%Typ% /t:c^|findstr /i /l "%Datei%"') do set Tag=%%i
:: Monat "tokens=2" und Jahr "tokens=3"
echo Erstellungstag: %Tag%

set /a var=%vTag%-%Tag%
echo Ausgabe %var%
if %var% LEQ 7 ( @echo ist kleiner als, mach das
) else ( @echo ist groesser als, mach jenes )
 
Zuletzt bearbeitet: (Nachtrag #2)
Vielen Dank für deine Mühe :)

Habe mich für Variante 2 entschieden, super Sache, Vielen Dank :)
 
Zurück
Oben