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, 23062 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 ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Microsoft
Ordner mit LW-Buchstaben versehen und benennen (19)

Frage von Xaero1982 zum Thema Microsoft ...

Outlook & Mail
gelöst Outlook 2010 findet ost datei nicht (19)

Frage von Floh21 zum Thema Outlook & Mail ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Netzwerkmanagement
gelöst Anregungen, kleiner Betrieb, IT-Umgebung (18)

Frage von Unwichtig zum Thema Netzwerkmanagement ...