在實際工作中,我發現程式員對指令碼抱怨最多的就是指令碼程式很難調試這個缺點,特別是調試.vbs等WSH程式的時候,總是:
1. 在資源管理員裡面雙擊一個.vbs檔案。
2. 程式裡面發生了一個錯誤,例如異常,或者編程邏輯錯誤。
3. 一行行閱讀源檔案,然後在估計發生錯誤的地方,添加很多的Msgbox.Show,列印一些變數的值。
4. 重新執行.vbs檔案
5. “噹噹當”,一系列的 “確定”點完了以後,人也暈了,重新回到第三步繼續……
其實我們也是可以用Visual Studio調試這類WSH程式的,關鍵就在.vbs等WSH指令碼程式的解譯器wscript.exe和cscript.exe提供了調試支援:
1. 當我們在資源管理員裡面雙擊一個.vbs檔案時,資源管理員實際上是運行wscript.exe來解釋和執行這個.vbs檔案的。
2. Wscript.exe和cscript.exe都支援這兩個選項 /D – 啟用調試功能,/X – 在調試器裡面執行指令碼程式。
這樣,我們可以使用兩種方法在Visual Studio裡面調試指令碼程式,這裡我只介紹第二種方法 -- 第一種方法不知道為什麼我的Win 7 + Visual Studio 2008不能工作,:(。
例如下面的.vbs代碼,將它儲存到c:"test.vbs,我們要調試這個程式,源檔案如下:
複製代碼 代碼如下:Set obj = CreateObject("System.Collections.ArrayList")
obj.Add("this is a test")
obj.Add(1)
obj.Add(obj)
Msgbox obj(0)
Msgbox obj(1)
Msgbox obj(2).ToString()
1. 開啟命令列,更換目錄到C:盤,執行下面這個命令:
Wscript.exe /X test.vbs
2. 這個時候,應該會彈出一個Visual Studio對話方塊,提示你選擇合適的調試器,直接點擊上面的確定按鈕就好了。
3. 最後,你就可以跟調試C#或者C++程式一樣,在 Visual Studio裡面設定斷點,查看變數的值了,如所示: