
Ich versuche, meinen CygwinSchProgramm wird geöffnet, wenn ich die Windows-Taste + R drücke (das könnte genauso gut auf jede andere Tastenkombination zutreffen), aber mir ist klar, dass Cygwin möglicherweise nicht auf allen meinen Computern installiert ist. Falls Cygwin auf meinem Computer nicht installiert ist, möchte ich einfach die Windows-Eingabeaufforderung öffnen.
Wie stelle ich die #r
(Win+R)-Zuordnung bedingt ein, um dies zu erreichen?
Antwort1
Dies ist ungetestet, sollte Ihnen aber den Einstieg erleichtern:
#r::
Run sh
WinWait,sh,,1
if ErrorLevel
{
;it timed out waiting for sh (1 sec)
Run cmd
}
return
Es wird versucht, den Cygwin-Befehl auszuführen sh
. Mit demWinWaitFunktion prüft es, ob es erstellt wurde (mit einem Fenstertitel von „sh“, der möglicherweise geändert werden muss). Wenn nicht, wird auf zurückgegriffen run cmd
.
Eine weitere Option, wenn Sie immer den absoluten Pfad von kennen sh.exe
, können Sie denDateiExistMethode.
#r::
if FileExist("c:\cygwin\sh.exe")
Run sh
else
Run cmd
return
Antwort2
Antwort von @yhw42hat mir den Einstieg erleichtert, aber ich habe eine sauberere Lösung gefunden:
WinR := "sh"
RunWait, where sh
if ErrorLevel
WinR := "cmd"
#r::Run %WinR%
Dabei wird die Windows- WHERE
Eingabeaufforderung verwendet undAutoHotkey-Variablen.