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

Benötige Hilfe beim löschen der Ältesten Verzeichnis-Inhaltes

Frage Entwicklung Batch & Shell

Mitglied: Daniel0-S

Daniel0-S (Level 1) - Jetzt verbinden

26.07.2012 um 09:47 Uhr, 3058 Aufrufe, 4 Kommentare

Hallo ich benötige eure Hilfe bei einem Problem.
Ich bin derzeit eine Batch-Datei am schreiben die die Älteste Datei des Verzeichnisses Löscht sobald Sie die 31Datei im Verzeichnis wäre, d.H.
Sobald ein Limit von 30Dateien erreicht ist soll immer die Älteste Gelöscht werden.

Soweit so gut.
Ich hoffe ihr könnt mir weiterhelfen

Liebe Grüße Daniel
Mitglied: bastla
26.07.2012 um 10:01 Uhr
Hallo Daniel0-S und willkommen im Forum!

Ob Dir wohl zB dieser Beitrag bei Deiner Suche entgangen ist?

Grüße
bastla
Bitte warten ..
Mitglied: Daniel0-S
26.07.2012 um 10:09 Uhr
Ich hab ihn schon gesehen aber alle dort genannten Beispiele bzw. Lösungsvorschläge funktionieren nicht wirklich.

Vielleicht hilft es wenn ich erstmal meinen Code Poste und man einmal drüber schaut:
01.
@echo off & setlocal 
02.
 
03.
REM Aktuelles Datum wird gesetzt: 
04.
set jahr=%date:~-4%  
05.
set monat=%date:~-7,2% 
06.
set tag=%date:~-10,2% 
07.
set "Ordner=C:\Benutzer\Daniel\Desktop\BATCH(ROLF)\Verzeichnis\Archiv" 
08.
set Anzahl=30  
09.
 
10.
IF EXIST Verzeichnis goto RENAME 
11.
CD .. 
12.
MKDIR Verzeichnis 
13.
:RENAME 
14.
CD Verzeichnis 
15.
RENAME "*.txt" "ROLF_TESTDATEN_%jahr%_%monat%_%tag%.txt" 
16.
 
17.
REM Inhalt des Ordners wird ins Archiv übertragen 
18.
CD  
19.
IF Exist Archiv goto Kopieren 
20.
MKDIR Archiv 
21.
:Kopieren  
22.
move "*_%jahr%_%monat%_%tag%.txt" Archiv 
23.
 
24.
REM Hier kannst du deine Batch einfügen! 
25.
 
26.
:Löschen 
27.
REM Hier wird die älteste Datei immer gelöscht sobald der Ordner  
28.
REM mehr als 30 Dateien enthaelt.  
29.
for /f "skip=%Anzahl%" "delims=" %%i in ('dir /b /a-d /o-d "%Ordner%"') do set "Alt=%Ordner%\%%i"  
30.
del "%Alt%" 
31.
PAUSE 
32.
:ENDE 
33.
EXIT
Bitte warten ..
Mitglied: bastla
26.07.2012 um 11:38 Uhr
Hallo Daniel0-S!

Soferne ich Dein Vorhaben richtig interpretiere, soll die einzige *.txt-Datei, die es im Ordner "C:\Benutzer\Daniel\Desktop\BATCH(ROLF)\Verzeichnis" gibt, (einmal am Tag) mit dem Namenszusatzz "_JJJJ_MM_TT" versehen und in den Unterordner "Archiv" verschoben werden. In diesem Unterordner sollen danach nur die jüngsten 30 *.txt-Dateien verbleiben.

Falls das so gemeint ist (mit einer Beschreibung hast Du Dich ja sehr zurückgehalten ), dann etwa:
01.
@echo off & setlocal 
02.
set "Ordner=C:\Benutzer\Daniel\Desktop\BATCH(ROLF)\Verzeichnis" 
03.
set /a Anzahl=30 
04.
 
05.
set "Archiv=%Ordner%\Archiv" 
06.
 
07.
REM Aktuelles Datum wird gesetzt: 
08.
set "jahr=%date:~-4%" 
09.
set "monat=%date:~-7,2%" 
10.
set "tag=%date:~-10,2%" 
11.
 
12.
md "%Archiv%" 2>nul 
13.
for %%i in ("%Ordner%\*.txt") do move /-Y "%%i" "%Archiv%\ROLF_TESTDATEN_%jahr%_%monat%_%tag%.txt" 
14.
 
15.
REM Hier wird die älteste Datei immer gelöscht sobald der Ordner mehr als 30 Dateien enthaelt.  
16.
for /f "skip=%Anzahl% delims=" %%i in ('dir /b /a-d /o-d "%Archiv%\*.txt" 2^>nul') do del "%Archiv%\%%i" 
17.
PAUSE
Falls der Batch unbeaufsichtigt ausgeführt werden soll, wäre einerseits "PASUE" entbehrlich und andererseits noch eine Entscheidung zu treffen, was bei mehr als einer Textdatei im "Verzeichnis" passieren sollte (mit "move /-Y" wird noch nach dem Überschreiben gefragt - ein "move" alleine würde der Reihe nach alle Textdateien verschieben und dabei kommentarlos schon bestehende Dateien ersetzen ...

Grüße
bastla

P.S.:
alle dort genannten Beispiele bzw. Lösungsvorschläge funktionieren nicht wirklich.
ist vielleicht eher vor dem Hintergrund zu sehen, dass dort zB nicht
... "skip=%Anzahl%" "delims=" ...
steht ...
Bitte warten ..
Mitglied: Daniel0-S
26.07.2012 um 13:06 Uhr
So Bastla besten Dank für deine Hilfestellung habe es nun zum Laufengebracht
01.
set "Ordner=C:\Benutzer\Daniel\Desktop\BATCH(ROLF)\Verzeichnis"
Hier war schon der erste Fehler er erkennt "Benutzer" nicht sondern nur User
Desweiteren gab es hier noch Probleme:
01.
for /f "skip=%Anzahl% delims=" %%i in ('dir /b /a-d /o-d "%Archiv%\*.txt" 2^>nul') do del "%Archiv%\%%i"
Die sich so Lösen ließen:
01.
for /F "skip=%Anzahl% " %%i in ('dir /b /a-d /o-d "%Ordner%\"') do del %%i
Liebe Grüße
Daniel
Bitte warten ..
Ähnliche Inhalte
Windows Server
Verzeichnis lässt sich nicht löschen (7)

Frage von BPeter zum Thema Windows Server ...

Batch & Shell
gelöst Batch Datei: PDF Dateien verschieben, umbenennen und löschen (4)

Frage von F0rcehunter zum Thema Batch & Shell ...

Neue Wissensbeiträge
RedHat, CentOS, Fedora

Fedora, RedHat, Centos: DNS-Search Domain setzen

(13)

Tipp von Frank zum Thema RedHat, CentOS, Fedora ...

Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Heiß diskutierte Inhalte
Batch & Shell
Skripterstellung Lehrling (22)

Frage von 133119 zum Thema Batch & Shell ...

Exchange Server
Microsoft Exchange Weiterleitung mit anderer primären E-Mail Adresse (14)

Frage von Rene12345 zum Thema Exchange Server ...

Windows Userverwaltung
gelöst Wie verfahrt Ihr mit den Windows-Benutzerkonten und -dateien von ausgeschiedenen Mitarbeitern? (14)

Frage von Bl0ckS1z3 zum Thema Windows Userverwaltung ...

LAN, WAN, Wireless
Devolo DLAN 500 pro Wireless+ (13)

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