ART | Dateien im Browser duplizieren – Teil 3: Last but not least, Windows

Nach Teil 1 (Linux) und Teil 2 (macOS) schließt dieser Beitrag die dreiteilige Reihe ab.

Da ART auch unter Windows keine eigene Dateiverwaltung mitbringt, sondern rein dateibasiert auf dem Windows Explorer aufbaut, wird das Duplizieren von Bildern und verknüpften Sidecars (.arp und .xmp) hier über die User Commands-Schnittstelle in Kombination mit einem kleinen PowerShell-Skript gelöst.

Der Uracher Wasserfall im Winter

(FUJIFILM X-T5 with FUJINON XF70-300mmF4-5.6 R LM OIS WR @81mm, 6.5s, f/8.0 and ISO125)


1. Konfiguration im AppData-Verzeichnis anlegen

Unter Windows liegt der Konfigurationsordner für User Commands im lokalen AppData-Verzeichnis des Benutzers.

Man legt die Konfigurationsdatei unter folgendem Pfad an: C:\Users\BENUTZER\AppData\Local\ART\usercommands\duplicate.txt

(Tipp: Im Windows Explorer erreicht man diesen Ordner direkt über die Adresszeile mit %LOCALAPPDATA%\ART\usercommands).

Inhalt der duplicate.txt:

[ART UserCommand]
Label=Duplicate File
Label[de]=Datei duplizieren
Command=powershell.exe
AppArgs=-ExecutionPolicy Bypass -File "C:\Users\BENUTZER\AppData\Local\ART\Scripts\duplicate.ps1"
FileType=any
MinArgs=1

Wichtige Hinweise zur Konfiguration unter Windows:

  • Parameter per AppArgs= übergeben: Unter Windows erwartet der Prozess-Parser von ART die reine Executable (powershell.exe) in der Command=-Zeile. Übergibt man Parameter wie -ExecutionPolicy direkt in Command=, schlägt der Aufruf schweigend fehl. Sämtliche Skript-Argumente gehören daher zwingend in AppArgs=.
  • Den Pfad C:\Users\BENUTZER an den eigenen Windows-Benutzernamen und den tatsächlichen Speicherort des Skripts anpassen.
  • Das Flag -ExecutionPolicy Bypass stellt sicher, dass Windows das PowerShell-Skript ohne Einschränkungen bei den Ausführungsrichtlinien startet.
  • Es dürfen keine Rautenzeichen (#) für Kommentare innerhalb der Datei verwendet werden, da der Parser die Konfiguration sonst beim Start verwirft.

2. Das PowerShell-Skript erstellen

Das eigentliche Duplizieren übernimmt ein PowerShell-Skript. Es nimmt die von ART übergebenen Dateipfade entgegen, baut bei bereits vorhandenen Duplikaten einen fortlaufenden Zähler auf und kopiert die Bilddatei sowie eventuell vorhandene Sidecar-Dateien (.arp und .xmp).

Man speichert das Skript beispielsweise unter C:\Users\BENUTZER\AppData\Local\ART\Scripts\duplicate.ps1 ab:

param (
    [string[]]$filepaths
)

# Process each selected file passed by ART
foreach ($filepath in $filepaths) {
    if (Test-Path -Path $filepath -PathType Leaf) {
        $file = Get-Item -Path $filepath
        $dir = $file.DirectoryName
        $baseName = $file.BaseName
        $ext = $file.Extension

        # Define initial target path
        $newFileName = "${baseName}_copy${ext}"
        $newFilePath = Join-Path -Path $dir -ChildPath $newFileName

        # Increment counter if target already exists
        $counter = 1
        while (Test-Path -Path $newFilePath) {
            $newFileName = "${baseName}_copy_${counter}${ext}"
            $newFilePath = Join-Path -Path $dir -ChildPath $newFileName
            $counter++
        }

        # Copy primary image file
        Copy-Item -Path $filepath -Destination $newFilePath

        # Copy associated sidecars (.arp and .xmp) if present
        $arpSidecar = "${filepath}.arp"
        if (Test-Path -Path $arpSidecar) {
            Copy-Item -Path $arpSidecar -Destination "${newFilePath}.arp"
        }

        $xmpSidecar = "${filepath}.xmp"
        if (Test-Path -Path $xmpSidecar) {
            Copy-Item -Path $xmpSidecar -Destination "${newFilePath}.xmp"
        }
    }
}

User commands unter Windows

Fazit

Nach einem Neustart von ART steht die Funktion User Commands -> Datei duplizieren im Kontextmenü des Dateibrowsers unter Windows bereit.

Egal ob unter Linux, macOS oder Windows: Der Workflow verhält sich nun auf allen drei Plattformen absolut identisch und erlaubt das Erstellen von Dateikopien direkt aus der Oberfläche heraus.

Happy Editing, euer Albfotograf

Kommentar verfassen