如果程式不存在則自動熱鍵回退

如果程式不存在則自動熱鍵回退

我正在嘗試擁有我的 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

它嘗試執行shcygwin 命令。使用等待函數,它檢查它是否已建立(使用視窗標題“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命令和自動熱鍵變數

相關內容