Gruppenmitglieder

  • Emilian Meier(Projektleiter)
  • Tobias Wiget
  • German Bugaev
  • Tobin Pinto

Projektbeschrieb

Nach Rücksprache in unserer Gruppe setzten wir ein kleines Automatisierungsprojekt mit PowerShell um: Ein Skript, das Dateien vom Desktop, die älter als 2 Tage sind, automatisch in alphabetisch sortierte Ordner im Dokumente-Verzeichnis verschiebt. Die Ordner werden bei Bedarf erstellt, die Sortierung erfolgt nach dem Anfangsbuchstaben des Dateinamens. Das Skript ist übersichtlich, leicht anpassbar (z. B. Zeitspanne variabel) und zuverlässig. So vertieften wir unser PowerShell-Wissen und entwickelten ein praktisches Tool zur automatisierten Dateiverwaltung.

Positive Erfahrungen

Wir haben viele gute Erfahrungen gemacht, wie zum Beispiel, dass wir sehr schnell vorangekommen sind und wir nur kleine Probleme mit dem Skript hatten. Auch in unserem Team hatten wir keine Auseinandersetzungen, Konflikte oder grosse Meinungsverschiedenheiten. Solche Sachen motivierten uns jeden Mittwoch am Projekt weiterzuarbeiten und uns viel Mühe zu geben, auch wenn wir nicht in der geplanten Zeit fertig geworden sind.

Negative Erfahrungen

Wir hatten nicht viele schlechte Erfahrungen gemacht. Das Einzige, was man besser hätte machen können, wäre, dass wir von Anfang an mehr Zeit einplanen hätten sollen.

Verbesserungsmöglichkeiten

Wir hätten das Problem mit der Zeit verhindern können, indem wir uns von Anfang an mehr Gedanken zum Zeitmanagement gemacht hätten.

Code

# Parameter

$desktopPath = [Environment]::GetFolderPath(“Desktop”)

$documentsPath = [Environment]::GetFolderPath(“MyDocuments”)

$archiveRoot = “$documentsPath\Archiv”

# Zeitlimit in Sekunden (hier: 30 Sekunden)

$maxAgeSeconds = 30

# Stelle sicher, dass das Archivverzeichnis existiert

if (-not (Test-Path $archiveRoot)) {

    New-Item -Path $archiveRoot -ItemType Directory | Out-Null

}

# Aktuelles Datum

$now = Get-Date

# Hole alle Dateien auf dem Desktop (ohne Unterordner)

Get-ChildItem -Path $desktopPath -File | ForEach-Object {

    $file = $_

    $age = ($now – $file.LastWriteTime).TotalSeconds

    # Prüfe, ob Datei alt genug ist

    if ($age -ge $maxAgeSeconds) {

        # Bestimme ersten Buchstaben (Großbuchstabe), Standardordner ‘Sonstige’ bei Sonderzeichen/Zahlen

        $firstChar = $file.BaseName.Substring(0,1).ToUpper()

        if ($firstChar -notmatch ‘[A-Z]’) {

            $firstChar = “Sonstige”

        }

        $targetFolder = Join-Path $archiveRoot $firstChar

        # Zielordner erstellen, falls er nicht existiert

        if (-not (Test-Path $targetFolder)) {

            New-Item -Path $targetFolder -ItemType Directory | Out-Null

        }

        # Verschiebe die Datei

        $targetPath = Join-Path $targetFolder $file.Name

        Move-Item -Path $file.FullName -Destination $targetPath -Force

    }

}