installer
Goto Top

Mehrere Ordner mit Batchdatei leeren

Hallo,
ich wollte gerne auf einem PC auf dem mehrere User arbeiten über die Aufgabenplanung eine Batchdatei ausführen lassen, welche in einem gewissen Rhytmus den DOWNLOADS Ordner in den jeweiligen User-Profilen LEERT.

Mit:
@echo off
del /s /q C:\Users\user1\downloads 
del /s /q C:\Users\user2\downloads

wäre das ja möglich, da ich das ganze aber so universell wie möglich halten möchte, und nicht immer die Datei anpassen möchte, wollte ich wissen ob jemand eine Möglichkeit kennt die jeweiligen User-Ordner dann als "Variable" oder ähnliches in die Batchdatei zu schreiben?

Content-ID: 53805772506

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

Ausgedruckt am: 21.11.2024 um 12:11 Uhr

Hubert.N
Hubert.N 23.08.2023 um 16:20:07 Uhr
Goto Top
Moin

Machst Du mit PowerShell...

Get-ChildItem -Directory (...)

Gruß
7907292512
Lösung 7907292512 23.08.2023 aktualisiert um 16:20:56 Uhr
Goto Top
Powershell
Get-CimInstance Win32_Userprofile | ?{!$_.Special} | %{remove-item "$($_.LocalPath)\Downloads\*" -Recurse -Force -EA SilentlyContinue}  
Gruß siddius
installer
installer 23.08.2023 um 16:27:49 Uhr
Goto Top
Super! Vielen Dank face-smile
wobit94
wobit94 24.08.2023 um 07:13:07 Uhr
Goto Top
Für solche vorhaben ist ChatGPT inzwischen echt jeden Euro / Franken wert:

# Holt alle Benutzerprofile
$UserProfiles = Get-WmiObject Win32_UserProfile | Where-Object { $_.Special -eq $false }

# Geht durch jeden Benutzerprofil
foreach ($UserProfile in $UserProfiles) {
    $DownloadsPath = Join-Path $UserProfile.LocalPath 'Downloads\*'  
    
    # Prüft, ob der Pfad existiert
    if (Test-Path $DownloadsPath) {
        try {
            # Entfernt alle Dateien und Unterordner
            Remove-Item -Path $DownloadsPath -Recurse -Force -ErrorAction Stop
            Write-Output "Erfolgreich geleert: $DownloadsPath"  
        } catch {
            Write-Error "Fehler beim Leeren von: $DownloadsPath. Grund: $_"  
        }
    }
}


Es wird empfohlen, eine Sicherungskopie der Dateien zu erstellen, bevor Sie sie löschen.
Vielleicht kannst Du das Script anpassen, sodass die Daten vorher in ein Share nochmals weggesichert werden? Von dort kannst ja 90 Tage später alles killen, wenn sich kein DAU mehr gemeldet hat ;)

Dieser Code erfordert erhöhte Berechtigungen, um auf die Ordner jedes Benutzers zuzugreifen. Es ist ratsam, den Code mit Administratorrechten auszuführen.
miniversum
miniversum 25.08.2023 um 14:03:22 Uhr
Goto Top
Hallo,

oder du nimmst einfach die kurze Variante und statt

@echo off
del /s /q C:\Users\user1\downloads

die Systemvariable:

@del /s /q %USERPROFILE%\downloads