Löschen von Dateien zwischen zwei Uhrzeiten per Batch (XP, Server 2003)
Benötige Batchdatei zum Löschen von Dateien in einem bestimmten Zeitraum (eines Tages). (XP, Server 2003)
Ola Leutz,
Vorgeschichte:
Wir fummeln seit Jahren an einem Batchpaket für unsere Server herum, welche wir bereits geraume Zeit für die unterschiedlichsten Zwecke einsetzen. Fast alles, was wir für eine schnelle Administration bzw. Sonderwünsche benötigen, ist bereits erstellt, welches nicht zuletzt auch Euch zu verdanken ist (Gruss an den Biber).
Man kann sich ja fast alles aus dem Forum holen, was man braucht. Nun hat ein Techniker letztens noch ein paar schöne Ideen gehabt und dafür brauche ich u.a. eine speziell umgesetzte Funktion in einer Batch mit Standardbefehlen.
Bisher nicht in der Form gefunden oder von mir zu schlecht kombiniert, i.e. nicht lauffähig ist folgende Problemstellung:
Löschen von Dateien in einem Verzeichnis (alternativ rekursiv mit Unterverzeichnissen) ZWISCHEN zwei anzugebenden UHRzeiten (Dateien sind zumeist alle von einem Tag).
Die Uhrzeiten können evtl. per SET (in der Batch) oder Parameter (%1, %2) in die Batch einfliessen.
Ihr würdet uns, wie immer, sehr helfen ... vielen Dank im voraus.
MfG theuncle
Ola Leutz,
Vorgeschichte:
Wir fummeln seit Jahren an einem Batchpaket für unsere Server herum, welche wir bereits geraume Zeit für die unterschiedlichsten Zwecke einsetzen. Fast alles, was wir für eine schnelle Administration bzw. Sonderwünsche benötigen, ist bereits erstellt, welches nicht zuletzt auch Euch zu verdanken ist (Gruss an den Biber).
Man kann sich ja fast alles aus dem Forum holen, was man braucht. Nun hat ein Techniker letztens noch ein paar schöne Ideen gehabt und dafür brauche ich u.a. eine speziell umgesetzte Funktion in einer Batch mit Standardbefehlen.
Bisher nicht in der Form gefunden oder von mir zu schlecht kombiniert, i.e. nicht lauffähig ist folgende Problemstellung:
Löschen von Dateien in einem Verzeichnis (alternativ rekursiv mit Unterverzeichnissen) ZWISCHEN zwei anzugebenden UHRzeiten (Dateien sind zumeist alle von einem Tag).
Die Uhrzeiten können evtl. per SET (in der Batch) oder Parameter (%1, %2) in die Batch einfliessen.
Ihr würdet uns, wie immer, sehr helfen ... vielen Dank im voraus.
MfG theuncle
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 154489
Url: https://administrator.de/contentid/154489
Ausgedruckt am: 23.11.2024 um 01:11 Uhr
6 Kommentare
Neuester Kommentar
Hallo theuncle!
Ja nach dem von Euch verwendeten Datums-/Zeitformat sind ev Anpassungen erforderlich, aber als Test an der Kommandozeile könnte das schematisch etwa so gehen:
Hier würden ohne Berücksichtigung des Datums alle zwischen (inklusive) "07:00" und "12:00" (die Grenzen können/sollten natürlich als Variable angegeben werden) zuletzt geänderten Dateien erfasst.
Rekursiv wird's bei Bedarf mit "
Grüße
bastla
Ja nach dem von Euch verwendeten Datums-/Zeitformat sind ev Anpassungen erforderlich, aber als Test an der Kommandozeile könnte das schematisch etwa so gehen:
for %i in ("D:\Das Verzeichnis\*.*") do @for /f "tokens=2" %a in ("%~ti") do @if "%a" geq "07:00" @if "%a" leq "12:00" @echo %a --^> "%i" wird geloescht
Rekursiv wird's bei Bedarf mit "
for /r
" ...Grüße
bastla
Hallo
nach Bastla noch den reinen Zeitcode
einfach unter Process die gewünschten Befehle einfügen
nach Bastla noch den reinen Zeitcode
@echo off
echo.
echo Format muss 00:00 sein!
echo.
set /p time1=Bitte Erste Zeit eingeben (von):
set /p time2=Bitte Zweite Zeit eingeben (bis):
if %time1% LSS 00:00 goto Fehler
if %time2% LSS 00:00 goto Fehler
if %time1% GTR 23:59 goto Fehler
if %time2% GTR 23:59 goto Fehler
if not %time1:~2,1% EQU : goto Fehler
if not %time2:~2,1% EQU : goto Fehler
if not DEFINED time1 goto Fehler
if not DEFINED time2 goto Fehler
if %time:~0,2%:%time:~3,2% GEQ %time1% if %time:~0,2%:%time:~3,2% LEQ %time2% (
goto Process
) else (
Goto Fehler
)
:Fehler
echo FEHLER
pause
exit
:Process
echo OK
pause
einfach unter Process die gewünschten Befehle einfügen
Hallo theuncle!
Falls Du den Oneliner als Batch verwenden willst, musst Du alle Prozentzeichen bei "%a" und "%i" (auch für "%~ti" wäre das dann "%%~ti") verdoppeln - direkt in der CMD-Shell eingegeben (und nur mit an mein System angepasstem Pfad von "e:\test\*.*") funktioniert Deine Zeile bei mir wie gewünscht ...
Grüße
bastla
Falls Du den Oneliner als Batch verwenden willst, musst Du alle Prozentzeichen bei "%a" und "%i" (auch für "%~ti" wäre das dann "%%~ti") verdoppeln - direkt in der CMD-Shell eingegeben (und nur mit an mein System angepasstem Pfad von "e:\test\*.*") funktioniert Deine Zeile bei mir wie gewünscht ...
Grüße
bastla