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. 这个时候,应该会d出一个Visual Studio对话框,提示你选择合适的调试器,直接点击上面的确定按钮就好了。
3. 最后,你就可以跟调试C#或者C++程序一样,在 Visual Studio里面设置断点,查看变量的值了
@echo offtasklist|findstr /s /i /m "AAAAAA.exe">nul
if errorlevel 0 (echo AAAAA.exe进程已存在) else goto no
echo.
echo.
tasklist|findstr /s /i /m "BBBBB.exe" >nul
if errorlevel 0 (echo BBBBB.exe进程已存在) else goto no
echo.
echo.
echo 稍等10秒钟,就去结束C进程
@ping 127.0.0.1 -n 10 >nul
tasklist|findstr /s /i /m "CCCCC.exe" >nul
if errorlevel 0 (echo 正在结束CCCCC.exe进程) else goto no
taskkill /f /im CCCCC.exe /t
@ping 127.0.0.1 -n 10 >nul
tasklist|findstr /s /i /m "CCCCC.exe"
if errorlevel 1 (echo CCCCC进程已线束)else echo CCCCC进程结束失败
pause
:no
echo 进程不存在,程序终止,20秒后自动退出!
127.0.0.1 -n 20 >nul
exit
quit
以上是BAT代码,也一样的功能。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)