AutoHotkey: Archivnamen automatisch vergeben

Aus TCWikide
Wechseln zu: Navigation, Suche

Wenn man mehrere Dateien packen möchte und der Dateiname ohne Erweiterung ist identisch, vergibt das folgende Skript automatisch diesen Namen , öffnet den "Packen"-Dialog vom TC und für den Dateinamen ein:

IfWinActive, ahk_class TTOTAL_CMD
{
    ; Variable setzen.
    UseName = 1


    ; Zwischenablage leeren.
    clipboard =

    ; Kopiere die Dateinamen mit Pfad der selektierten Dateien in die
    ; Zwischenablage (Total Commander-Funktion cm_CopyToClipboard).
    PostMessage, 1075, 2008

    ; Warte darauf, dass die Zwischenablage befuellt wurde
    ClipWait


    ; Alle Dateinamen mit Pfaden durchlaufen.
    Loop, Parse, Clipboard, `n, `r
    {
        ; Pfad und Erweiterung abschneiden
        SplitPath, A_LoopField, FileName, Extension, Dir, FileNameNoExt

        ; Den ersten Namen fuer Vergleiche merken.
        if (FirstName = "") {
            FirstName = %FileNameNoExt%
        } else {
            ; Merken, ob ein unterschiedlicher Name dabei ist.
            if (FileNameNoExt <> FirstName) {
                UseName = 0
            }
        }
    }


    ; Falls alle Namen gleich sind, wird der Name fuer das ZIP-Archiv verwendet,
    ; sonst wird Feierabend gemacht.
    if (UseName = 0) {
        MsgBox, Unterschiedliche Dateinamen`, Abbruch!
    } else {
        Clipboard = zip:%FirstName%.zip
        PostMessage, 1075, 508
        Send ^v
    }
}
Return