AHK zum Erstellen von Ordnern + Unterordnern

AHK zum Erstellen von Ordnern + Unterordnern

Ich brauche ein AHK-Skript, das Folgendes erstellt:

  • einen Ordner im aktuell geöffneten Ordner im Windows Explorer (unter Windows 7),
  • dessen Name besteht
    • das aktuelle Datum im Format ( yyyy-mm-dd)
    • der Text, der sich aktuell in der Zwischenablage befindet
  • Der neu erstellte Ordner muss 3 Unterordner mit den Namen „1“, „2“ und „3“ enthalten.

Ich möchte ein paar Wörter (z. B. Testing Testing Testing) aus einer anderen Anwendung kopieren, zu einem Speicherort auf meiner Festplatte gehen (mit dem Windows Explorer), den Hotkey aktivieren und AHK erstellt für mich einen Ordner mit dem Namen:

2012-06-04 Testing Testing Testing

mit den Unterordnern „1“, „2“ und „3“.

Antwort1

Das Drehbuch

#c::
    WinGetClass, WinClass, A
    if (WinClass = "CabinetWClass")
    {
        FormatTime, CurrentDate,, yy-MM-dd
        CustomText = %Clipboard%
        Clipboard = 
        SendPlay, !d^c
        ClipWait, 1
        If ErrorLevel
        {
            MsgBox, Could not read directory name.
            return
        }
        CurrentDir = %Clipboard%
        Clipboard = %CustomText%
        NewDir = %CurrentDir%\%CurrentDate% %CustomText%
        Run, cmd /c (md "%NewDir%" || pause) && md "%NewDir%\1" && md "%NewDir%\2" && md "%NewDir%\3"
    }
    else
        SendPlay, #c
return

Wie es funktioniert

  • #c:: ... returnGibt eine Tastenkombination an (hier: Win+ C) und wird ...bei Betätigung ausgeführt.

  • WinGetClass, WinClass, Aspeichert den Titel des aktuell aktiven Fensters in der Variablen WinClass.

  • if (WinClass = "CabinetWClass") { ... }Überprüfen Sie, ob es sich um eine Klasse des Windows Explorers WinClasshandelt .CabinetWClass

    Wenn ja:, ...wird ausgeführt. Andernfalls SendPlay, #cwird ein normaler Win+ CStrich emuliert.

  • FormatTime, CurrentDate,, yy-MM-ddspeichert das aktuelle Datum ( YY-MM-DD) in der Variable CurrentDate.

  • Clipboard =löscht die Zwischenablage, sodass wir überprüfen können, wenn etwas dorthin kopiert wird.

  • CustomText = %Clipboard%kopiert den aktuellen Inhalt der Zwischenablage in die Variable CustomText.

  • SendPlay, !d^cwählt die Adressleiste aus und kopiert ihren Inhalt in die Zwischenablage.

  • ClipWait, 1wartet bis zu einer Sekunde, bis die Zwischenablage Daten enthält.

  • If ErrorLevel { ... }prüft, ob die Zwischenablage Daten enthält.

    Ist dies nicht der Fall, wird das Skript abgebrochen.

  • CurrentDir = %Clipboard%kopiert den aktuellen Inhalt der Zwischenablage in die Variable CurrentDir.

  • Clipboard = %CustomText%setzt die Zwischenablage auf den ursprünglichen Wert zurück.

  • NewDir = %CurrentDir%\%CurrentDate% %CustomText%gibt den Namen des neuen Verzeichnisses an.

  • Run, cmd /c ...führt den Befehl aus ...und beendet dann das Programm.

    • (md "%NewDir%" || pause)versucht zu erstellen %NewDir%. Bei einem Fehler wird es angehalten, sodass Sie die Fehlermeldung sehen können.

    • md "%NewDir%\1" && md "%NewDir%\2" && md "%NewDir%\3"erstellt die 3 Unterverzeichnisse.

verwandte Informationen