我有这个使用AHK作为后端引擎的小程序。在这个程序中,我想实现一个"变量"。执行非常基本的数学运算(加法/乘法等)。
被引用的变量/对象是通过命令行调用的AHK脚本中预定义的:
.Shift_IN.Ahk "$Start-5"
.Shift_OUT.Ahk "$End+5"
我将调用的脚本的一个浓缩示例是:
; A_args[1] := "$Start-5" ;An example of an incoming string
Input := StrReplace(Parameters[1],"$",,null) ;Remove the "$" symbol, last parameters seems to be mandatory, I gave it null
Start := 25 ;<---- minus 5 this variable
Current := 7
End := 50
NewStartFrameIs := % %input% ;<---- I am assuming that I placed "start-5" here
MsgBox, % "NewStartFrameIs: " NewStartFrameIs ;NewStartFrameIs's value should be 20
脚本没有运行,但我得到错误,最常见的是:
ERROR :---> NewStartFrameIs := % %input% ... contains an illegal character:
当我尝试这个NewStartFrameIs := %input%
我也得到了同样的错误我怎样才能让AHK认为% %input%
是我想要它执行的表达式,而不是字符串?
任何帮助都将非常感激!
方括号在AHK中用于定义对象具有特殊含义。和表达式中的变量名不包含百分号。字面值字符串必须用双引号括起来,以区别于变量:
Start := 25
Current := 7
End := 50
Parameters := ["$"Start-5, "$"End+5] ; defines an array; literal strings must be enclosed in double quotes
MsgBox, % Parameters[1]
Input := StrReplace(Parameters[1],"$",,null)
NewStartFrameIs := input ; variable names in an expression are not enclosed in percent signs
MsgBox, % "NewStartFrameIs: " NewStartFrameIs ; NewStartFrameIs's value should be 20