我相信這是你如何創建你的數組。通過在數組索引周圍放置百分號,實際上是說您要使用第一個文件級輸入參數(在使用%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語法計數器,因爲這是由stringsplit命令輸出相同的語法。
難道是因爲我有AHK的版本嗎?你提供的代碼不會打印窗口的標題... – George 2014-09-10 19:46:49
@George我在我的代碼之前更新了答案,還請看它。 – vasili111 2014-09-10 19:48:56
@George我已經檢查了codeI給你的,並且能夠正常工作,使用當前最新版本的AutoHotkey形式ahkscript.org。 – vasili111 2014-09-10 19:51:10