FsLogic – „Local_“ Ordner löschen Script mit Log und Sicherheitskopie (Löschung nach 7 Tagen!)

anbei das Script:

@echo off
setlocal enabledelayedexpansion

set "sourceFolder=C:\Users"
set "destinationRoot=C:\Services\saved_User_Duplikate_Folders"

rem Aktuelles Datum im Format YYYY-MM-DD abrufen
for /f "tokens=1-3 delims=.-/ " %%a in ('wmic os get localdatetime ^| find "."') do set "currentDate=%%a"
set "today=%currentDate:~0,4%-%currentDate:~4,2%-%currentDate:~6,2%"

set "destinationFolder=%destinationRoot%\%today%"

rem Überprüfen, ob das Tagesverzeichnis existiert, und es bei Bedarf erstellen
if not exist "%destinationFolder%" (
    mkdir "%destinationFolder%"
    if !errorlevel! neq 0 (
        echo Fehler: Das Verzeichnis %destinationFolder% konnte nicht erstellt werden.
        exit /b 1
    )
)

rem Überprüfen, ob die Log-Datei existiert, und sie bei Bedarf erstellen
if not exist "%destinationRoot%\log.txt" (
    echo Log for Moving User Folders > "%destinationRoot%\log.txt"
    if !errorlevel! neq 0 (
        echo Fehler: Die Log-Datei %destinationRoot%\log.txt konnte nicht erstellt werden.
        exit /b 1
    )
)

rem Schleife über alle Ordner im Quellverzeichnis
for /d %%i in ("%sourceFolder%\local_*") do (
    set "folderName=%%~nxi"

    rem Verschieben des Ordners und Protokollierung des Ergebnisses
    move "%%i" "%destinationFolder%" >nul 2>&1
    if !errorlevel! == 0 (
        echo %date% %time% - Moved folder: !folderName! to %destinationFolder% >> "%destinationRoot%\log.txt"
    ) else (
        echo %date% %time% - Error moving folder: !folderName! >> "%destinationRoot%\log.txt"
    )
)

rem Alte Ordner aufräumen, wobei die letzten 7 Ordner nach Änderungsdatum erhalten bleiben
set "tempFile=%TEMP%\folder_list.txt"

rem Ordner auflisten und Änderungsdaten speichern
dir /b /ad /o-d "%destinationRoot%" > "%tempFile%"

rem Zähle die Ordner und behalte nur die neuesten 7
set "count=0"
for /f "delims=" %%i in ('type "%tempFile%"') do (
    set /a count+=1
    if !count! gtr 7 (
        rmdir /s /q "%destinationRoot%\%%i"
        echo %date% %time% - Deleted old folder: %%i >> "%destinationRoot%\log.txt"
    )
)

rem Aufräumen der temporären Datei
del "%tempFile%"

echo Ordner wurden verschoben und alte Ordner entfernt.

Lasse gerne ein Kommentar da, vielleicht hilft es auch anderen Usern?

WiKi.Premium-Lizenz.com
Logo
Jetzt registrieren