Downloads-Ordner sortieren
!!! WORK IN PROGRESS !!!
# Pfad zum Downloads-Ordner
$downloadsPath = "$env:userprofile\Downloads"
# Name des Ordners, in den alle nicht sortierten Ordner verschoben werden sollen
$folderName = "Ordner"
# Liste von Zielordnern und den zugehörigen Dateierweiterungen
$folders = @{
"Dokumente" = @(".pdf", ".odt", ".doc", ".docx", ".rtf", ".txt")
"Bilder" = @(".jpg", ".jpeg", ".png", ".gif", ".bmp")
"Musik" = @(".mp3", ".flac", ".wav", ".m4a", ".aac", ".wma")
"Archive" = @(".zip", ".rar", ".7z", ".tar", ".gz")
"Setups" = @(".exe", ".msi")
}
# Erstellen des Ordners für nicht sortierte Dateien, falls er nicht vorhanden ist
$otherFolderPath = Join-Path $downloadsPath $folderName
if (-not (Test-Path $otherFolderPath)) {
New-Item -ItemType Directory -Path $otherFolderPath | Out-Null
}
# Sortieren der Dateien
Get-ChildItem $downloadsPath -Exclude $folderName | Where-Object { $_.PSIsContainer -eq $false } | ForEach-Object {
$extension = $_.Extension
foreach ($folder in $folders.Keys) {
if ($folders[$folder] -contains $extension) {
$targetPath = Join-Path $downloadsPath $folder
Move-Item $_.FullName $targetPath
return
}
}
if ($_.Name -ne $folderName -and $_.Name -ne "Sonstige Dateien") {
$otherFolderPath = Join-Path $downloadsPath $folderName
Move-Item $_.FullName $otherFolderPath
}
}
# Verschieben der verbleibenden Ordner in den Ordner für nicht sortierte Dateien
Get-ChildItem $downloadsPath -Directory | Where-Object { $_.Name -notin $folders.Keys -and $_.Name -ne $folderName -and $_.Name -ne "Sonstige Dateien" } | ForEach-Object {
Move-Item $_.FullName $otherFolderPath
}
# Schließen des PowerShell-Fensters
Exit
Das Script erstellt Ordner und verschiebt Dateien darein. Alle sonstigen Ordner die in dem Downloads-Ordner verbleiben, werden in einen Ordner namens "Ordner" verschoben:
Endresultat ist ein Downloads-Ordner mit sieben Ordnern der entsprechenden Dateitypen. Deutlich aufgeräumter als alles chronologisch rumliegen zu lassen.