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-Key: 53805772506

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

Printed on: April 28, 2024 at 14:04 o'clock

Member: Hubert.N
Hubert.N Aug 23, 2023 at 14:20:07 (UTC)
Goto Top
Moin

Machst Du mit PowerShell...

Get-ChildItem -Directory (...)

Gruß
Mitglied: 7907292512
Solution 7907292512 Aug 23, 2023 updated at 14:20:56 (UTC)
Goto Top
Powershell
Get-CimInstance Win32_Userprofile | ?{!$_.Special} | %{remove-item "$($_.LocalPath)\Downloads\*" -Recurse -Force -EA SilentlyContinue}  
Gruß siddius
Member: installer
installer Aug 23, 2023 at 14:27:49 (UTC)
Goto Top
Super! Vielen Dank face-smile
Member: wobit94
wobit94 Aug 24, 2023 at 05:13:07 (UTC)
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.
Member: miniversum
miniversum Aug 25, 2023 at 12:03:22 (UTC)
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