如何在AutoHotKey中实现类似select case esac结构的功能

如何在AutoHotKey中实现类似select case esac结构的功能,autohotkey,Autohotkey,我不知道如何开始这个。我查看了AHK的帮助文件,但没有结果 我需要建立一个这样的构造(这不是在UNIX shell或AHK脚本语言中,只是显示了我想要的想法) 为了使事情更加复杂,注释为string-1到string-n的部分也是变量,根据一天中的时间或事件的触发器从几个不同的文件中读取 有人能给我指出正确的方向吗 自动热键没有任何case语句。每个人都会使用if和else语句。(我知道这是什么感觉。我也喜欢case) 给你的一些提示: 在自动热键中,变量名中不能有$或- …但您可以使用下划线

我不知道如何开始这个。我查看了AHK的帮助文件,但没有结果

我需要建立一个这样的构造(这不是在UNIX shell或AHK脚本语言中,只是显示了我想要的想法)

为了使事情更加复杂,注释为
string-1
string-n
的部分也是变量,根据一天中的时间或事件的触发器从几个不同的文件中读取


有人能给我指出正确的方向吗

自动热键没有任何
case
语句。每个人都会使用
if
else
语句。(我知道这是什么感觉。我也喜欢
case

给你的一些提示:

  • 在自动热键中,变量名中不能有
    $
    -
  • …但您可以使用下划线
  • 您不需要用
    终止行
    
这里是一个翻译成自动热键为您

gosub screenscrape
; here, all text on page is on clipboard
; variable "input" is a predefined portion of the clipboard

if(string1){   ;if the variable is not blank it will evaluate to `true`
    gosub subroutine1
}else if(string2){
    gosub subroutine2
}else{
    msgbox not found
    sleep 60000  ;milliseconds
}

此外,您还可以在autohotkey中使用实函数-您不必依赖gosubs。如果使用gosubs,请确保在其末尾放置一个
返回值。您还应该阅读有关“自动执行”部分的自动热键文档。

+1回答不错,我只想补充一点,我刚才在自动热键中实现了一个“开关”,因为我们都需要开关语句…:(无论如何,这里是/*我也喜欢下面的方式。elseif比if*/if(false){}else if(string1){gosub sub subroutine1}else if(string2){gosub subroutine2}更好地向上/向下移动
gosub screenscrape
; here, all text on page is on clipboard
; variable "input" is a predefined portion of the clipboard

if(string1){   ;if the variable is not blank it will evaluate to `true`
    gosub subroutine1
}else if(string2){
    gosub subroutine2
}else{
    msgbox not found
    sleep 60000  ;milliseconds
}