Top-Themen

Aktuelle Themen (A bis Z)

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

Löschen der ältesten Datei im Unterverzeichnis.

Frage Entwicklung Batch & Shell

Mitglied: Cadiarn

Cadiarn (Level 1) - Jetzt verbinden

10.11.2011, aktualisiert 19:02 Uhr, 4029 Aufrufe, 7 Kommentare

Moin Leutz hätte da ein kleines Prob. mit einem Batch file

Ich soll zur Zeit eine Batch Datei schreiben, die es ermöglicht die ältesten Dateien in einem angegebenen Dateipfad zu löschen unter den Bedingungen das:

a -die Festplatte nur noch wehnig speicherplatz enthält. (z.b. 1 GB)

b -Das Batch nur eine Geringe Priorität besitzt um nicht das System auszubremsen.

c -Nur in den angegebenen Pfad ausgewälte Dateien gelöscht werden. (z.b. nur JPG im Ordner D:\fd)

d -Dabei sollen alle Ordnerinhalte (auch Unterordner) mit dem Änderungsdatum vergleichen werden und die älteste Datei gelöscht.

Das ganze soll rellativ schnell unter der Bedingung "a" wiederholt werden.

bisher schaut mein Programm so aus:
::-----------------------------------------------------------------
@echo off & setlocal
@set #=||(set #=1&start "%~dpnx0" /min cmd /c %0 %*&set #=&goto :eof)
if "%1"=="" (
start /WAIT /LOW /B cmd.exe /V /C %~s0 weiter_machen
goto:eof
)

:start
set LW=C:
FOR /F "tokens=3 delims= " %%i in ('dir %LW% /-c') do set Frei=%%i
if %frei% gtr 1000000000 goto vok

set "Ordner=D:\db"
for /f "delims=" %%i in ('dir /b /o-d "%Ordner%"') do set "Alt=%Ordner%\%%i"
del "%Alt%" /s /q
pause

:vok
sleep 60
goto start
pause
::----------------------------------------------------------------

Ich bekomme es nur nicht hin das der "dir" Befehl unterordner mit einbezieht b.z.w. die änderungsdaten vergleicht.

Hoffe jemand kann mir helfen.
LG kai
Mitglied: 60730
10.11.2011, aktualisiert um 16:56 Uhr
joMän

Moin Leutz hätte da ein kleines Prob. mit einem Batch file
bisher schaut mein Programm so aus:
::-----------------------------------------------------------------
@echo off & setlocal

Dort, wo du das gefunden hast, stand sicherlich auch wie und für was es genutzt wird.
Ich bekomme es nur nicht hin das der "dir" Befehl unterordner mit einbezieht b.z.w. die änderungsdaten vergleicht.
Grass - da hat der Biber? auch voll daneben gedenkt, denn die freien Beits auf einer Bladde sind ja in jedem Unterordner annerst.

Was macht ?
dir /b /o-d

Was sagt dir /?
/scheibenkleister
Bitte warten ..
Mitglied: bastla
10.11.2011, aktualisiert um 16:56 Uhr
Hallo Cadiarn und willkommen im Forum!

Das könnte so gehen (mit Betonung auf "gehen" ):
01.
@echo off & setlocal 
02.
@set #=||(set #=1&start "%~dpnx0" /min cmd /c %0 %*&set #=&goto :eof) 
03.
if "%1"=="" ( 
04.
start /WAIT /LOW /B cmd.exe /V /C %~s0 weiter_machen 
05.
goto:eof 
06.
07.
 
08.
:start 
09.
set LW=C: 
10.
FOR /F "tokens=3 delims= " %%i in ('dir %LW% /-c') do set Frei=%%i 
11.
if %frei% gtr 1000000000 goto vok 
12.
 
13.
set "Ordner=D:\db" 
14.
set "AltDat=999999999999" & set "Alt=" 
15.
for /f "delims=" %%i in ('dir /s /b /a-d "%Ordner%"') do for /f "tokens=1-5 delims=.: " %%a in ("%%~ti") do call :ProcessFile "%%c%%b%%a%%d%%e" "%%i" 
16.
if defined Alt echo del "%Alt%" /s /q 
17.
 
18.
:vok 
19.
sleep 60 
20.
goto start 
21.
 
22.
:ProcessFile 
23.
if %1 geq "%AltDat%" goto :eof 
24.
set "AltDat=%~1" 
25.
set "Alt=%~2" 
26.
goto :eof
Das Testen habe ich übrigens Dir überlassen - deswegen das "echo" vor dem "del ...

Grüße
bastla

P.S.: Mit der passenden Formatierung (lässt sich auch noch nachholen ) liest sich geposteter Code leichter ...
Bitte warten ..
Mitglied: Cadiarn
10.11.2011 um 16:02 Uhr
@TimoBeil

Manchmal sieht man den Wald vor lauter Bäumen nicht.
Der Tipp hat mich auf die Lösung gebracht geht super.

Danke.
Bitte warten ..
Mitglied: Cadiarn
10.11.2011 um 16:04 Uhr
Danke bastla werde das auch noch später testen.

LG Cadiarn
Bitte warten ..
Mitglied: bastla
10.11.2011 um 16:09 Uhr
Hallo Cadiarn!

Ich fürchte nur, ein
dir /s /b /o-d
wird Dir nicht (weit genug) helfen, da die Ausgabe immer noch je Unterordner zusammengefasst erfolgt ...

@T-Mo
... deswegen für mich eine nicht "nicht anspruchsvolle" Frage ...

Grüße
bastla
Bitte warten ..
Mitglied: Cadiarn
10.11.2011 um 16:35 Uhr
@bastla

Ja ich seh schon, hab deine Idee mal umgesetzt schaut nicht schlecht aus.

Jetzt muss ich nur noch ändern das es leere Ordner mit löscht und g.g.f. schauen das nur jpg und index.html's gelöscht werden an Dateien.

Dank dir

LG Cadiarn
Bitte warten ..
Mitglied: bastla
10.11.2011 um 16:59 Uhr
Hallo Cadiarn!
schauen das nur jpg und index.html's gelöscht werden an Dateien.
Wenn beide gemeinsam einbezogen werden sollten (also die älteste Datei, die entweder vom Typ "jpg" ist oder "index.html" heißt), könntest Du versuchsweise die Zeile 15 auf
for /f "delims=" %%i in ('dir /s /b /a-d "%Ordner%\*.jpg" "%Ordner%\index.html"') do for /f "tokens=1-5 delims=.: " %%a in ("%%~ti") do call :ProcessFile "%%c%%b%%a%%d%%e" "%%i"
ändern ...
Zum Löschen aller leeren Unterordner von %Ordner%:
for /f "delims=" %%i in ('dir /s /b /ad "%Ordner%"^|sort /r') do rd "%%i" 2>nul
Anmerkung: Durch die Sortierung werden die längeren Pfade (= Unterordner) vorweg behandelt - damit kann die Struktur "von unten nach oben" aufgerollt werden, und ein "rd" ohne weitere Schalter entfernt nur leere Ordner. Das Unterdrücken der Fehlermeldung "Das Verzeichnis ist nicht leer." durch die Umleitung des Kanals 2 (STDERR) nach "nul" ist dann nur noch Kosmetik ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Unterverzeichnis löschen
gelöst Frage von sanaitBatch & Shell4 Kommentare

Moin Moin, echo off rmdir /s /Q D:\Transfer\ diese Batch löscht ja das gesamte Verzeichnis inklusive des Ordners Transfer. ...

Batch & Shell
Dateien (keine Ordner) löschen die älter sind als
gelöst Frage von siziigilendirmezBatch & Shell4 Kommentare

Guten Morgen ich möchte gerne mit einer power Shell Dateien löschen die älter als 30 tage sind. Die Dateien ...

Batch & Shell
Powershell ältere Dateien löschen
gelöst Frage von Cougar77Batch & Shell6 Kommentare

Hallo, ich habe ein kleines Problem mit einem Datenaustauschordner. Und zwar möchte ich, dass in einem Ordner Dateien 30 ...

Batch & Shell
Unterverzeichnis für Unterverzeichnis via Batch-Datei durchsuchen
gelöst Frage von dhc-beaverBatch & Shell4 Kommentare

Hallo Forum. Obgleich es viele Werkzeuge gibt, um Bilder von 5MP-Handykameras kleiner zu machen, scheitert man an der Faulheit ...

Neue Wissensbeiträge
Apple

IOS 11.2.1 stopft HomeKit-Remote-Lücke

Tipp von BassFishFox vor 12 StundenApple

Das Update für iPhone, iPad und Apple TV soll die Fernsteuerung von Smart-Home-Geräten wieder in vollem Umfang ermöglichen. Apple ...

Windows 10

Windows 10 v1709 EN murkst bei den Regionseinstellungen

Tipp von DerWoWusste vor 18 StundenWindows 10

Dieser kurze Tipp richtet sich an den kleinen Personenkreis, der Win10 v1709 EN-US frisch installiert und dabei die englische ...

Webbrowser

Kein Ton bei Firefox Quantum über RDP

Tipp von Moddry vor 18 StundenWebbrowser

Hallo Kollegen! Hatte das Problem, dass der neue Firefox bei mir auf der Kiste keinen Ton hat, wenn ich ...

Internet

EU-DSGVO: WHOIS soll weniger Informationen liefern

Information von sabines vor 1 TagInternet4 Kommentare

Wegen der europäische Datenschutzgrundverordnung stehen die Prozesse um die Registrierung von Domains auf dem Prüfstand. Sollte die Forderungen umgesetzt ...

Heiß diskutierte Inhalte
Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server18 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Windows XP
Windows XP Aktivieren geht nicht
Frage von tetikmiroWindows XP13 Kommentare

Hallo Ich habe einen Windows XP mit einen vCenter Converter umgezogen auf eine ESXI. Soweit funktioniert dies auch ohne ...

Blogs
Immer wiederkehrende PHP Fehlermeldung bei Wordpress UTF-8 - ASCII
gelöst Frage von vcdweltBlogs11 Kommentare

Hi, seit einiger Zeit wird mein error_log meines Wordpress Blogs mit immer der gleichen Fehlermeldung überschwemmt. 14-Dec-2017 08:18:05 UTC ...

Switche und Hubs
Redundante L2 LWL Leitung über 2 Standorte - Spanning Tree - HP Equipment
gelöst Frage von ResolvSwitche und Hubs10 Kommentare

Hallo, ich stehe vor der Herausforderung eine Redundante L2 LWL Leitung über 2 Standorte herzustellen. Grundsätzliches Switching Know How ...