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

Powershell 5 BSOD

(8)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
Windows Server
Verzeichnis lässt sich nicht löschen (7)

Frage von BPeter zum Thema Windows Server ...

Microsoft Office
Microsoftaccount löschen (3)

Frage von Kroni99 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

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

Frage von Floh21 zum Thema Outlook & Mail ...

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

Frage von Unwichtig zum Thema Netzwerkmanagement ...

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

Frage von Haures zum Thema Windows Server ...