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
- das aktuelle Datum im Format (
- 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:: ... return
Gibt eine Tastenkombination an (hier: Win+ C) und wird...
bei Betätigung ausgeführt.WinGetClass, WinClass, A
speichert den Titel des aktuell aktiven Fensters in der VariablenWinClass
.if (WinClass = "CabinetWClass") { ... }
Überprüfen Sie, ob es sich um eine Klasse des Windows ExplorersWinClass
handelt .CabinetWClass
Wenn ja:,
...
wird ausgeführt. AndernfallsSendPlay, #c
wird ein normaler Win+ CStrich emuliert.FormatTime, CurrentDate,, yy-MM-dd
speichert das aktuelle Datum (YY-MM-DD
) in der VariableCurrentDate
.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 VariableCustomText
.SendPlay, !d^c
wählt die Adressleiste aus und kopiert ihren Inhalt in die Zwischenablage.ClipWait, 1
wartet 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 VariableCurrentDir
.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.