AutoIt使用Run()執行非exe, bat等執行檔
Windows的腳本機器人AutoIt
AutoIt是一個執行於Windows環境的腳本機器人,我以前就用AutoIt製作過VirtualBox的自動安裝程式,之後我偶爾也會用AutoIt來幫我排程處理例行事務,省下我自己動手的功夫。
Run()函數以命令列指令執行
有時候我會需要AutoIt去執行外部程式,這可以藉由它內建的Run()函數來執行。但是AutoIt的Run()函數預設只能執行exe、bat、com、pif,如果參數中的程式不是這些類型,那麼Run()下去就不會有任何反應。
這時候可以以「命令列」(console)的方式來處理,請使用以下的指令:
Run(@ComSpec & " /c " & 'commandName', "", @SW_HIDE)
commandName可以替換成你要執行的程式路徑。要注意到" /c "前後是有空格的喔。
開啟絕對位置檔案
舉例來說,我希望AutoIt自動幫我開啟一個網頁程式「c:\index.html」的話,指令要這樣寫:
Run(@ComSpec & " /c " & 'c:\index.html', "", @SW_HIDE)
開啟與腳本相同位置的檔案
如果我要開啟與腳本相同位置的檔案,則可以利用「@ScriptDir」。舉例來說,「index.html」擺在跟AutoIt腳本(或是編譯過的執行檔)相同的目錄之中,則可以利用以下指令來執行「index.html」:
Run(@ComSpec & " /c " & 'index.html', @ScriptDir, @SW_HIDE)
結語
其實這個作法已經寫在Run()函數的網頁說明中,但傻傻的我還是google了好一段時間才發現,在此留下一個記錄。
另外也有人主張用ShellExecute()函數來開啟。以後有機會我再研究看看好了。
最近寫了幾篇AutoIT的應用,發現這篇Run()的記錄非常的實用,在此特別感謝。
回覆刪除