JPG zu PNG Konverter mit PowerShell: Stolpersteine bei GetChildItem

PowerShell ist ein mächtiges Werkzeug für die Automatisierung, und kleine Skripte, die alltägliche Aufgaben vereinfachen, sind oft die nützlichsten. Heute schauen wir uns ein PowerShell-Skript an, das JPG-Bilder in PNG-Dateien konvertiert, und beleuchten dabei eine häufige Stolperfalle bei der Verwendung von Get-ChildItem. Das Skript im Fokus Das folgende Skript ist ein praktischer JPG-zu-PNG-Konverter: param ( [Parameter(Mandatory = $true)] [string]$Path ) # Überprüfen, ob das Verzeichnis existiert if (-Not (Test-Path $Path)) { Write-Error "Verzeichnis '$Path' existiert nicht." exit 1 } # System.Drawing laden (nur Windows) Add-Type -AssemblyName System.Drawing # Alle Dateien abrufen und manuell nach .jpg/.jpeg filtern $jpgFiles = Get-ChildItem -Path $Path -File | Where-Object { $_.Extension -match '\.jpe?g$' } foreach ($file in $jpgFiles) { try { $image = [System.Drawing.Image]::FromFile($file.FullName) $newFile = [System.IO.Path]::ChangeExtension($file.FullName, ".png") # Bild als PNG speichern $image.Save($newFile, [System.Drawing.Imaging.ImageFormat]::Png) $image.Dispose() Write-Host "Konvertiert: $($file.Name) -> $(Split-Path $newFile -Leaf)" } catch { Write-Warning "Fehler beim Konvertieren von $($file.FullName): $_" } } Dieses Skript nimmt einen Pfad entgegen, überprüft dessen Gültigkeit, lädt die notwendige System.Drawing-Assembly (die nur unter Windows verfügbar ist) und iteriert dann durch alle gefundenen JPG/JPEG-Dateien, um sie in PNGs zu konvertieren. ...

Juni 3, 2025