
私はcygwinを使おうとしているシュWindows キー + R を押すとプログラムが開きます (これは他のキーの組み合わせにも簡単に適用できます)。ただし、すべてのコンピューターに cygwin がインストールされているわけではないことに気付きました。コンピューターに cygwin がインストールされていない場合は、Windows コマンド プロンプトを開くだけにしたいと思います。
#r
これを実現するために、(Win+R) マッピングを条件付きで設定するにはどうすればよいですか?
答え1
これはテストされていませんが、開始するには十分です:
#r::
Run sh
WinWait,sh,,1
if ErrorLevel
{
;it timed out waiting for sh (1 sec)
Run cmd
}
return
cygwinコマンドを実行しようとしますsh
。ウィンウェイト関数は、それが作成されたかどうかを確認します (ウィンドウ タイトル「sh」を使用しますが、変更が必要になる場合があります)。作成されていない場合は、にフォールバックしますrun cmd
。
もう一つの選択肢として、の絶対パスが常に分かっている場合はsh.exe
、ファイルが存在する方法。
#r::
if FileExist("c:\cygwin\sh.exe")
Run sh
else
Run cmd
return
答え2
@yhw42 の回答最初はそうでしたが、もっときれいな解決策を見つけました:
WinR := "sh"
RunWait, where sh
if ErrorLevel
WinR := "cmd"
#r::Run %WinR%
これはWindowsWHERE
コマンドを使用し、AutoHotkey 変数。