我如何能够提取存储在另一个变量中的变量的值?

时间:2016-03-09 12:59:40

标签: autohotkey

text = "This is a textline"
PlaceHolder = "text"

所以我想获得通过占位符返回的文本的值。但无论我尝试什么,它总是会返回文字字符串“text”。问题是我不知道我事先需要哪个变量。因此,PlaceHolder可以在脚本中包含任意数量的变量的名称。这让我知道我将需要哪个变量。但是,如果我只能将它用作文字字符串,那就没有用了。

我试过了:

% PlaceHolder - 返回文字
%PlaceHolder% - 返回文字
:= PlaceHolder - 返回文字

解释我在做什么
我在GUI中有很多DropDownLists。除了一个,所有这些都是隐藏的。可见的那个将根据所做的选择显示其中一个。所以我无法知道哪个DropDownList会变得可见。但我确实需要DropDownList的值。

因此,第一个选择的值ALWAYS匹配变为可见的DropDownList的变量名。但是,它存储为文字字符串。所以即使我现在有我需要的变量的名称,我也无法访问它的值。希望这一切都有点意义。

1 个答案:

答案 0 :(得分:1)

变量PlaceHolder包含值"text",但变量text的名称不带引号。因此,请确保变量PlaceHolder包含变量的确切名称或删除引号:

StringReplace, PlaceHolder2 , PlaceHolder , `" , , A

然后将带有百分号的变量分配给一个新变量:

Out := %PlaceHolder2%
Msgbox, %Out%

或者干脆做:

PlaceHolder := text ; note the absence of quotation marks
Msgbox, %Placeholder%

这与:

相同
PlaceHolder = %text%
Msgbox, %Placeholder%