如何使用脚本通过命令行接收的字符串执行数学表达式?



我有这个使用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

最新更新