我相信这取决于您创建阵列的方式。通过在数组索引周围放置百分号,您实际上是在说要使用第一个文件级输入参数(在使用 %1% 的情况下)。这很可能是空白的,所以它最终寻找的是一个名为“window_title_array”的变量
取出百分比。你应该使用这个:
window_title_array1 = 3270 Display A - A
window_title_array2 = 3270 Display A - B
window_title_array3 = 3270 Display A - C
window_title_array4 = 3270 Display A - D
window_title_array5 = 3270 Display A - E
window_title_array6 = 3270 Display A - F
不是这个:
window_title_array%1% = 3270 Display A - A
window_title_array%2% = 3270 Display A - B
window_title_array%3% = 3270 Display A - C
window_title_array%4% = 3270 Display A - D
window_title_array%5% = 3270 Display A - E
window_title_array%6% = 3270 Display A - F
然后,如果您想使用计数器变量引用某些内容,...(查看您的代码)...您会完全按照自己的方式进行操作。
请注意,这不是 AHK 中的原生数组。但是,如果您有旧版本,则可能无法使用本机数组。长期以来,AHK 中的数组就是这样处理的。
此外,我处理此问题的另一种方法是创建一个“内置”计数器/长度变量并使用它来动态编号我的数组。然后可以很容易地在数组循环等中引用它。并且注意没有手动编码数组索引,这意味着您可以添加更多或插入它们而无需重新编号任何东西。我经常做结构数组,下面是一个简单的例子……
myArr0 = 0 ; At the end, this will hold the count of the array
myArr0++
myArr%myArr0%_firstName = John
myArr%myArr0%_lastName = Smith
myArr0++
myArr%myArr0%_firstName = Bill
myArr%myArr0%_lastName = Jones
myNames =
; assemble a list of names, a simple example
loop, %myArr0%
{
myNames := myNames . myArr%a_index%_firstName . ", "
}
我对计数器使用 0 语法,因为这与 stringssplit 命令输出的语法相同。