AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Delphi-PRAXiS - Lounge Betriebssysteme Batchscript zum automatischen Löschen von Dateien
Thema durchsuchen
Ansicht
Themen-Optionen

Batchscript zum automatischen Löschen von Dateien

Ein Thema von Luckie · begonnen am 21. Mai 2019 · letzter Beitrag vom 23. Mai 2019
Antwort Antwort
Delphi.Narium

Registriert seit: 27. Nov 2017
2.558 Beiträge
 
Delphi 7 Professional
 
#1

AW: Batchscript zum automatischen Löschen von Dateien

  Alt 21. Mai 2019, 22:01
Ergebnis Kommandozeile ohne Klammerung?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

AW: Batchscript zum automatischen Löschen von Dateien

  Alt 21. Mai 2019, 22:04
Habs:

Code:
@echo off
set RETAINBACKUPS=2
set BACKUPDIR=D:\
d:

if not exist "%BACKUPDIR%" (
    echo.
    echo "%BACKUPDIR%" existiert nicht.
    echo.
    pause
    goto :EOF
)

rem freien Speicherplatz anzeigen
for /f "tokens=3" %%i in ('dir /-c^|findstr /c:"Bytes frei"') do set tmp=%%i
echo Freier Speicherplatz auf Laufwerk D: %tmp:~0,3% GB
echo.

rem alte Backups loeschen
choice /M "Alte Sicherung(en) loeschen?" /C JN
if %ERRORLEVEL% == 1 goto DEL_OLDEST
if %ERRORLEVEL% == 2 goto DO_BACKUP

:DEL_OlDEST
echo Loesche alte Sicherungen...
echo.

for /F "skip=%RETAINBACKUPS% delims=" %%F IN ('dir /B /AD-S /O-N "*" 2^>NUL') DO (
    echo rmdir /S /Q "%BACKUPDIR%\%%F"
)

pause
So funktioniert es.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#3

AW: Batchscript zum automatischen Löschen von Dateien

  Alt 21. Mai 2019, 22:15
Ja, man kann auch ein
Code:
cd /D "%BACKUPDIR%"
vorneweg machen, aber trotzdem funktioniert es nach meinen Tests auch, das Pattern direkt an das dir-Kommando zu geben.

Vielleicht war das Wegfiltern der Fehler für die Tests doch nicht so gut? Andererseits lässt sich ja das dir-Kommando auch so auf die CMD kopieren und einzeln testen (dann sinnvollerweise ohne Umleitung von StdError) ...

Grüße
Dalai

Geändert von Dalai (21. Mai 2019 um 22:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

AW: Batchscript zum automatischen Löschen von Dateien

  Alt 21. Mai 2019, 22:20
Egal. Jetzt funktioniert es jedenfalls.

Vielen Dank für eure Hilfe.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Dalai
Dalai

Registriert seit: 9. Apr 2006
1.684 Beiträge
 
Delphi 5 Professional
 
#5

AW: Batchscript zum automatischen Löschen von Dateien

  Alt 22. Mai 2019, 03:40
Auf eine Sache möchte ich in Bezug auf das fehlende bzw. breit gefasste Pattern noch hinweisen: Damit werden alle Verzeichnisse ausgegeben, nicht nur die automatisch erstellten Backupverzeichnisse. Achte also darauf, dass dort keine anderen Dinge rumliegen, sonst wunderst du dich, wenn auf einmal Verzeichnisse bzw. ganze Strukturen verschwinden. Auch deshalb ist es besser, sowohl ein Pattern anzugeben, als auch in ein Verzeichnis zu sichern, das ausschließlich für Backups gedacht ist (und sonst nichts rumgeschrieben wird).

Zitat:
Prinzipiell hast Du ja recht, aber auf der Kommandozeile ist das halt schwer testbar.
Wieso? Auch auf diese Art geklammerte Bereiche lassen sich exakt so in die CMD einfügen. Man muss nur darauf achten, die doppelten Prozentzeichen von for-Schleifen u.ä. in einfache zu wandeln, das war's. Klammern stören nicht, ganz im Gegenteil: Wenn eine öffnende Klammer eingegeben wird, weist die CMD darauf hin mit dem "Mehr?", dass man die Eingabe fortsetzen kann/soll, bis zur schließenden Klammer.

Grüße
Dalai
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Batchscript zum automatischen Löschen von Dateien

  Alt 22. Mai 2019, 04:20
Das ist schon in Ordnung. Auf dem Laufwerk kommen nur Backups. Sie hat auch die Bezeichnung "Backup". Da noch mal einen Unterordner "Backup" anzulegen wäre unsinnig.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
DenkDirNix

Registriert seit: 13. Dez 2018
73 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Batchscript zum automatischen Löschen von Dateien

  Alt 22. Mai 2019, 07:19
Fürs Debuggen von Batch-Dateien hatte ich mal einen Debugger im Delphi-Stil geschrieben, siehe https://www.dropbox.com/sh/k34v4uhwd...HdEMM4I4a?dl=0. Sollte für unsereiner also einigermaßen intuitiv bedienbar sein. Soweit man so etwas über die Gattung "Debugger" überhaupt sagen kann.

Der hilft bei Problemen mit der Befehls-Syntax natürlich eher weniger, ist aber gut bei der Verfolgung des Programmflusses und der Variablen-Inhalte.
Angehängte Grafiken
Dateityp: jpg LineSymbols.jpg (43,7 KB, 25x aufgerufen)

Geändert von DenkDirNix (22. Mai 2019 um 08:17 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz