AutoHotkey: Archivnamen automatisch vergeben

Aus TCWikide
Zur Navigation springen Zur Suche springen

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