belfry
Goto Top

Ordner inkl. Unterordner nach Dateien überprüfen

Hallo,

ich bin neu hier im Forum und arbeite auch relativ neu als Administrator.

Ich soll ein Batchskript schreiben, welches in einem Temp-Verzeichnis weitere Ordner inkl. Unterordner überprüft, ob Dateien vorhanden sind. Falls nein, sollen diese Ordner gelöscht werden.

Eine weitere Aufgabe Dateien in diesem Ordner inkl. Unterordner zu löschen, die älter als x Tage sind, habe ich gelöst. Nur halt das Ordnerproblem konnte ich noch nicht lösen.

Hat jemand von euch bitte einen Tipp?

Liebe Grüße Belfry ;)

Content-Key: 310841

Url: https://administrator.de/contentid/310841

Ausgedruckt am: 19.03.2024 um 06:03 Uhr

Mitglied: Dirmhirn
Dirmhirn 25.07.2016 um 17:57:45 Uhr
Goto Top
Hi,

wo hängst du denn? weißt du nicht wie du herausfindest ob ein Ordner leer ist? oder wie du ihn löschst? oder wie du ihn löschst nachdem du ihn durchsucht hast und das Skript schon beim nächsten Ordner ist?

desto mehr gezielte Infos du gibt's desto schneller wird dir geholfen werden.
zb. die Codezeilen die Probleme machen. Das ganze Skirpt kann auch helfen, aber das Skript posten nach dem Moto: "Da ist es sucht mir die Fehler" ist auch meist "demotivierend" für die Leser.

sg Dirm
Mitglied: 129813
129813 25.07.2016 aktualisiert um 19:16:33 Uhr
Goto Top
Hi.
@echo off
set "folder=%TEMP%\FolderXYZ"  
set cnt=
for /f "tokens=1 delims=:" %%a in ('dir /b /s /a-d "%folder%" ^| findstr /n "^" 2^>nul') do set cnt=%%a  
if not defined cnt (
    echo Folder is empty, deleting "%folder%".  
    rd "%folder%" /s /q  
) else (
    echo Folder has %cnt% files.
)
Regards
Mitglied: belfry
belfry 25.07.2016 um 20:08:14 Uhr
Goto Top
Hallo sorry... hatte den Ansatz jetzt nicht hier vor Ort. Ich habe ihn versucht zu rekonstruieren...

Mein erster Ansatz war ungefähr dieser:

set %dir% = "d:\temp"  
for /D %%i in (%dir%\*.*) ( for /F %%a in ('dir /B %1') do rd %%i /s /q)  
Mitglied: belfry
belfry 25.07.2016 aktualisiert um 20:16:58 Uhr
Goto Top
@129813:

Danke / Thanks a lot.

Ich werde es morgen mal ausprobieren. / I will try it tomorrow.

Greetings