在我們重復(fù)做一些事情的時候,就需要使用循環(huán)了。而 AHK 正是能將復(fù)雜的手動工作自動化的工具,循環(huán)自然必不可少。但 AHK 中的循環(huán)也是多種多樣的,我們慢慢道來。
最簡單的循環(huán)
最簡單的情況,我們知道要循環(huán)多少次,比如想連續(xù)按下 10 次回車鍵:
Loop, 10
{
Send, {Enter}
}
這樣就可以了。在 Loop 后加上要循環(huán)的次數(shù),然后大括號里邊就是要循環(huán)執(zhí)行的語句。當(dāng)然我們可以先把循環(huán)的次數(shù)放進(jìn)一個變量,這樣更靈活些:
count := 10
Loop, %count%
{
Send, {Enter}
}
可以在循環(huán)體中使用 A_Index 來獲取當(dāng)前循環(huán)的次數(shù)。
或者有可能我們想一直循環(huán)執(zhí)行:
Loop
{
Send, {Enter}
Sleep, 1000
}
這個就是死循環(huán)了,如果腳本不退出就會一直執(zhí)行,某些情況我們確實需要這樣。但更多情況,我們需要在滿足某個條件時結(jié)束循環(huán):
; 這個 stop 變量會在代碼的其他地方修改,比如在某個定時器里
stop := false
Loop
{
Send, {Enter}
Sleep, 1000
if (stop)
{
break
}
}
break 是用來退出循環(huán)的,continue 是用來結(jié)束當(dāng)前循環(huán),進(jìn)入下一次循環(huán)的。這和其他語言都一致。
Loop Until 循環(huán)
上邊的最后一種用法,即滿足某個條件時結(jié)束循環(huán),也可以用 Until 來實現(xiàn):
stop := false
Loop
{
Send, {Enter}
Sleep, 1000
}
Until stop
看起來比剛才的要簡潔一些。
While 循環(huán)
有些時候我們需要先判斷條件,然后再決定是否要循環(huán),這樣雖然用 Loop 也能實現(xiàn),但有些別扭,這時就可以用 While 循環(huán)了。
count := 0
while (count < 10)
{
Send, {Enter}
Sleep, 1000
count++
}
和
count := 0
Loop
{
if (count >= 10)
{
break
}
Send, {Enter}
Sleep, 1000
count++
}
是等同的,使用哪個就看自己的習(xí)慣了。
更多內(nèi)容
有些時候我們需要循環(huán)讀取數(shù)組、讀取字符串中的子字符串、讀取文件內(nèi)容、遍歷目錄下的文件甚至遍歷注冊表等,AHK 中都有很方便的用法,而無需讓我們在 Loop 里寫復(fù)雜的邏輯,我們會在之后的文章中了解到。
付費解決 Windows、Linux、Shell、C、C++、AHK、Python、JavaScript、Lua 等領(lǐng)域相關(guān)問題,靈活定價,歡迎咨詢,微信 ly50247。