InStr()功能

时间:2012-12-23 18:07:01

标签: autohotkey

也许我误解了AutoHotKey功能的工作原理。这是一些测试代码:

pos = InStr(123abc789, abc)
MsgBox, abc is at pos "%pos%"
Exit

MsgBox读取:

  

abc at pos“InStr(123abc789,abc)”

我期待pos的值为4。

现在,AutoHotKey帮助文件说明了InStr()

InStr(Haystack, Needle [, CaseSensitive = false, StartingPos = 1, Occurrence = 1]): 

在字符串Haystack中返回字符串Needle的出现位置...例如,“123abc789”中“abc”的位置始终为4.

怎么了?

2 个答案:

答案 0 :(得分:2)

你缺少两件事。您必须确保使用:=作业,并将字符串放在引号中。请参阅以下修改后的代码:

pos := InStr("123abc789", "abc") ; strings must be in quotes unless variables
MsgBox, abc is at pos "%pos%"

答案 1 :(得分:-1)

此外:

MsgBox, abc is at pos "%pos%"

不起作用,变量需要在百分号之间,没有引号。

这将有效:

MsgBox, abc is at pos %pos%