在windows排程下,如何關閉因排程所呼叫出來的IE視窗
近來遇到一個狀況…就是在windows下,利用排程所執行的網頁程式居然沒正常執行…多天監控的結果,發現有時有執行,有時沒執行…再繼續觀察,發現問題似乎在於排程呼叫出IE去執行該網頁程式後,如果沒人手動關掉該IE,下次排程時間到時,則無法正常被呼叫起來!
不過,記憶中以前在設定排程時,有懷疑過可能有此狀況,所以當時有測試過。在模糊…模糊的記憶中,記得測試結果是沒有此問題…
但,現在的狀況就是有問題,所以找了些資料看看,理出一個作法…簡單的說,就是在原本的排程執行前,再增加一個排程,將上次排程所呼叫出來的IE給關掉…
在我的電腦上測試(xp professional),執行的結果如我預期…但,離奇的是一樣的指令到了server上,卻說找不到可以砍的IE process。但我怎麼看,都看不出差異,找不到問題
所以呢,只好投機,改成如下…
執行的結果,恢復正常,如我所預期的了…
不過,記憶中以前在設定排程時,有懷疑過可能有此狀況,所以當時有測試過。在模糊…模糊的記憶中,記得測試結果是沒有此問題…
但,現在的狀況就是有問題,所以找了些資料看看,理出一個作法…簡單的說,就是在原本的排程執行前,再增加一個排程,將上次排程所呼叫出來的IE給關掉…
- 新增一個 .bat 檔,負責關掉之前所開啟的IE
- 建立一個新排程,時間訂在原本的排程之前。呼叫上一步驟的 .bat
- 執行原本排程
taskkill /FI "WINDOWTITLE eq http://myurl/myprog.jsp - Microsoft Internet Explorer" /IM iexplore.exe
在我的電腦上測試(xp professional),執行的結果如我預期…但,離奇的是一樣的指令到了server上,卻說找不到可以砍的IE process。但我怎麼看,都看不出差異,找不到問題
所以呢,只好投機,改成如下…
taskkill /FI "WINDOWTITLE eq http://myurl/*" /IM iexplore.exe
執行的結果,恢復正常,如我所預期的了…
留言