Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Mit Batch Datei Verzeichnis auslesen

Frage Entwicklung Batch & Shell

Mitglied: Schully

Schully (Level 1) - Jetzt verbinden

16.02.2009, aktualisiert 12:53 Uhr, 24213 Aufrufe, 4 Kommentare

Hallo Forum,
ich möchte per Batch Datei ein bestimmtes Verzeichnis auf meinem PC auslesen und alle Dateien bis auf die drei jüngsten löschen.

Ich mache täglich eine Sicherung meines Webservers als Datum.zip Datei.
Jetzt möchte ich das eine Batch-Datei ein mal die Woche per Task gestartet wird
und dieses Verzeichnis ausliest und alles löscht was älter ist als drei Tage.

Ich bin für jede Hilfe Dankbar.
Gruß
Jürgen
Mitglied: Biber
17.02.2009 um 19:53 Uhr
Moin Schully,

über die Forumssuche nach "die ältesten x Dateien löschen" oder ähnlich müsstest Du auf vorsichtig ausgedrückt mehrere Batch-Beispiele für diese thematik kommen.

Die Strategie ist auch recht simpel:
  • lass dir über den DIR-Befehl mit Schalter /b wie billich und /o-d wie absteigend nach Datum eine Liste aller Dateien ausgeben
  • überspringe die ersten 3 Zeilen (die jüngsten Dateien)
  • hau wech den Rest.
Demo am CMD-Prompt:
01.
for /f "skip=3 delims=" %i in ('dir d:\temp\*.* /a-d /b /o-d') do @echo del "d:\temp\%~i"
Dient nur zu Demo, d.h. diese Zeile macht ein "@echo del [dateiname]" statt des "echten" DEL-Befehls.

Wie Du diese eine Zeile per Taskplaner startest, findest Du -vorsichtig ausgedrückt MEHRFACH mit einer Forumssuche über "Batch Taskplaner".

Grüße
Biber
P.S. Nicht böse sein für die Nicht-Rundum-sorglos-Fertiglösung, aber...
wer seine alle-bis-auf-die-jüngsten-drei-Dateien per taskplanergesteuertem Batch automatisch wegschrubbeln will, der sollte sich diese Zeile auch zusammenbraten und ggf. warten/anpassen können.
Bitte warten ..
Mitglied: Schully
18.02.2009 um 07:50 Uhr
Hallo Biber,

selbstverständlich bin ich nicht böse. Warum auch.
Selbstverständlich kann ich die Batch per Taskplaner aufrufen. Das ist doch klar.
Ich hatte halt keinen Ansatz wie ich an die zu löschenden Dateien komme.

Ich habe mit Batch-Programmierung so gut wie nie zu tun deshalb frage ich ja in einem Forum. Das Suchen brachte mich halt auch nicht weiter so stellte ich mal meine Frage allgemein.

Jetzt zu Deinem Ansatz mit der For-Schleife.
Skip=3 gibt an wie viele Dateien nicht gelöscht werden sollen aus dem Suchergebnis ('dir d:\temp\*.* /a-d /b /o-d') welches in %i steht.

Ich habe Das Skript (loeschen.bat) so angepasst. Es tut sich nichts! Die Datei startet und schließt sich sofort wieder. Nichts passiert.

@echo off

for /f "skip=3 delims=" %i in ('dir G:\A\*.* /a-d /b /o-d') do @echo del "G:\A\%~i"
:: Erst mal sehen was gelöscht werden würde
pause
:: Dann löschen
for /f "skip=3 delims=" %i in ('dir G:\A\*.* /a-d /b /o-d') do del "G:\A\%~i"
pause
Bitte warten ..
Mitglied: Biber
18.02.2009 um 10:08 Uhr
Moin Schully,

bitte taste Dich in folgenden drei Schritten an das Wunschergebnis heran.

1) Starte die Batchdatei bis zum letzten erfolgreichen Test vom CMD-Prompt und nicht via Doppelklick. Wie Du ja selbst festgestellt hast, kommst Du nie zu Ansätzen bei der Fehlerlokalisierung bei "Die Datei startet und schließt sich sofort wieder"
2) Ändere die "einfachen" Prozentzeichen vor den FOR-Laufvariablen (%i) in doppelte Prozentzeichen (%%i).
01.
for /f "skip=3 delims=" %%i in ('dir G:\A\*.* /a-d /b /o-d') do ( 
02.
                 echo del "G:\A\%%~i" 
03.
                 REM  Erst mal sehen was gelöscht werden würde 
04.
                 REM uncomment nach Test:: Dann löschen 
05.
                 REM uncomment nach Test:: del "G:\A\%%~i" 
06.
07.
pause
3) wenn Du mit dieser Datei sinnvolle Ergebnisse bekommst, dann mach die beiden Zeilen "REM uncomment nach Test:" scharf, indem Du genau diesen Text herauslöscht, lösche die beiden Zeilen darüber und das "Pause" am Ende und gut.

Die Codeformatierung ist u.a. in unseren FAQ beschrieben.

Grüße
Biber
Bitte warten ..
Mitglied: Schully
18.02.2009 um 12:32 Uhr
Hallo Biber,

vielen Dank für Deine Hilfe. Es funktioniert.
Ich bekomme nicht nur sinnvolle Ergebnisse sondern genau das was ich wollte.

Also noch mal vielen vielen Dank.

Gruß
Jürgen
Bitte warten ..
Ähnliche Inhalte
Entwicklung
gelöst Verzeichnise sichern mit batch datei (Win10) (13)

Frage von Limbach zum Thema Entwicklung ...

Batch & Shell
gelöst Datei aus Verzeichnis auslesen? (4)

Frage von freshman2017 zum Thema Batch & Shell ...

Batch & Shell
gelöst Fenstertitel von anderen Tasks per batch auslesen (3)

Frage von NetMare zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
CNC Maschinen verlieren Netzwerkverbindung (kurioser Fehler) (22)

Frage von NoHopeNoFear zum Thema LAN, WAN, Wireless ...

Drucker und Scanner
Erfahrungen mit Enterprise-Tintenstrahldruckern A4 und A3 (14)

Frage von User1000 zum Thema Drucker und Scanner ...

Webentwicklung
Aktuellen Mitarbeiter auf Homepage anzeigen (13)

Frage von alemanne21 zum Thema Webentwicklung ...