JavaScript/VBScript脚本程序调试(Wscript篇)

在实际工作中,我发现程序员对脚本抱怨最多的就是脚本程序很难调试这个缺点,特别是调试.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里面设置断点,查看变量的值了,如下图所示:

时间: 2009-09-12

调试JavaScript/VBScript脚本程序(IE篇)

这两种方式,都可以使用Visual Studio来进行调试,先看大家用得比较频繁的网页脚本程序的调试: 1. 要调试网页里面的脚本程序,调试器需要宿主程序-这里也就是IE的支持,实际上所有的脚本程序解释器都实现了一个COM的调试接口.调试器通过查询解释器的这个接口,可以设置断点,查询变量以及捕捉异常,当然,查询到这个接口,需要宿主程序同意--至于如何实现这个接口,我们会在以后的文章里面讲到. 2. 默认情况下,IE是将脚本调试支持功能关闭的,因此你需要显示地打开它.打开IE,点击"工具"

ASP/VBScript中CHR(0)的由来以及带来的安全问题分析

该字符标识着字符串的结束,也称作null-terminated,这个给脚本编程尤其是ASP编程带来了一定的麻烦,很多人可能会问为什么要保留这个特殊字符,我们可以追溯到编写操作系统的语言之一C语言,学过C/C++的童鞋可能知道,在字符串中标识一个字符串结束靠的就是结尾的\0(NULL或者0),否则不能称作为字符串,只能说是字符串数组,任何对于字符串操作的函数如果传入的字符串丢掉了这个结束NULL字符,都有可能会出现异常. 复制代码 代码如下: char strbuf[] = "Hello"

ASP里面令人震撼地Debug类(VBScript)

我想可能很多朋友都会用这样的方法"response.write ",然后输出相关的语句来看看是否正确.前几天写了一个千行的页面,里面大概有七八个SUB/FUNCTION,调试的时候用了有三十几个response.write ,天,调试完后把这三十个一个个删除,累! 今天看到一个ASP中的Debug类(VBS),试用了一下,绝! 使用方法很简单: test.asp 复制代码 代码如下: <!--#INCLUDE FILE="debuggingConsole.asp&quo

vbscript脚本编程教程2利用fso来进行文件操作

by sssa2000 我们来看一看怎么利用fso来进行文件操作.Fso时vbs里进行文件操作的核心.作为黑客,不管学习什么语言,对文件的操作都应该是要了如指掌的,所以请大家仔细学习. 不说废话,先看fso由哪几个对象组成: drive对象:包含储存设备的信息,包括硬盘,光驱,ram盘,网络驱动器 drives集合:提供一个物理和逻辑驱动器的列表 file  对象:检查和处理文件 files 集合:提供一个文件夹中的文件列表 folder对象:检查和处理文件夹 folders集合:提供文件夹中子

ASP、vbscript编码模板

<!-- METADATA TYPE="typelib" FILE="C:\Program Files\Common Files\System\ADO\msado20.tlb" --> <%@ Language=VBScript %> <%Option Explicit%> <% '加入的文件 %> <!-- #include virtual|file="需要包含的文件" --> <

使用vbscript脚本在表单中进行选择的代码

问: 嗨,Scripting Guy!我想创建一个带有四个单选按钮的表单,其中每个按钮各代表一台计算机.可以选择一个单选按钮,单击另一个按钮,然后脚本将在所选的计算机上运行.我怎样才能做到? -- CW 答: 嗨,CW.如果我们所说的只是 VBScript 和 Windows Script Host,那么这个问题很简单:办不到.除了显示消息框以外,VBScript 和 WSH 都无法创建图形用户界面:没办法通过脚本使用单选按钮.列表框.下拉列表以及其他图形元素. 但是--噢,你们以前一定见过这种

ASP基础知识VBScript基本元素讲解

VBScript数据类型 VBScript只有一种数据类型,即Variant,称为变体型.Varriant是一种特殊的数据类型,根据使用的方式,它可以包含不同类别的信息.因为Variant是VBScript中惟一的数据类型,所以它也是VBScript中所有函数的返回值的数据类型. 最简单的Variant可以包含数字或字符串信息.Variant 用于数字上下文中时作为数字处理,用于字符串上下文中时作为字符串处理.也就是说,如果使用看起来像是数字的数据,则VBScript会假定其为数字并以适用于数字

枚举域内计算机个数vbscript脚本(没环境,没测试)

原来是微软专家的代码在这: http://www.microsoft.com/china/technet/community/scriptcenter/resources/hey060127.mspx 我改成了全自动式的,不需要手要修改域的adsi连接字符串了,代码: 复制代码 代码如下: On Error Resume Next Set objRootDSE = GetObject("LDAP://rootDSE") strDomain = ObjRootDSE.Get("

利用vbscript脚本修改文件内容,此适用于自动化的操作中

利用vbscript脚本修改文件内容,此适用于自动化的操作中 '新建一个Replace.vbs脚本,脚本内容如下,程序运行时输入三个参数:查找内容,替换内容,文件 复制代码 代码如下: Dim FileName, Find, ReplaceWith, FileContents, dFileContents   Find = WScript.Arguments(0)   ReplaceWith = WScript.Arguments(1)   FileName = WScript.Argument

ASP中一个用VBScript写的随机数类

外国人写的一个class,这么一点小小的应用,除非有特殊需求,还没有必要模块化. 用asp产生一个随机数. <%  ''**************************************************************************  '' CLASS: cRandom  '' Calls randomize to seed the random number generator.  '' Provides functions for returning ra

ASP基础入门第四篇(脚本变量、函数、过程和条件语句)

在上一篇小编向大家简要介绍了 ASP 脚本语言之一 VBScript 的一些基本常识,本期将继续给大家讲解 VBScript 的脚本编写方法,并通过展示 VBScript 在 ASP 程序编写过程中的一系列实例使大家对 VBScript 有更进一层的理解.   函数和过程一样都是命名了的代码块,但它们却有很大的区别,过程完成程序任务,函数则返回值.我们可以这样理解,过程象一个完整的句子,而函数则象一个单词.举个例子,当你想获取某个数的平方根,你只要将该数传给 VBScript 的 Sqr() 函

asp,VBscript语法错误,史上最全最详细最精确第1/3页

ASP错误总结  -------------------------------------------------------------------------------- Microsoft VBscript语法错误(0x800A03E9)-->内存不足 Microsoft VBscript语法错误(0x800A03EA)-->语法错误 Microsoft VBscript语法错误(0x800A03EB)-->缺少 ':' Microsoft VBscript语法错误(0x800

ASP(VBScript)中整除和取余

整除 ASP(VBScript) 中整除用"\",比如 m = 5 \ 2,结果为 2. 取余 ASP(VBScript) 中取余用 mod,比如 m = 5 mod 2,结果为 1. 大数注意 m = 4444444444 / 2 n = 4444444444 \ 2 第一句是正确的,第二句运行时会报溢出错误,因为:在整除.取余操作前,数值表达式四舍五入为 Byte.Integer 或 Long 子类型表达式.Long 子类型的范围是 [-2147483648, 2147483647

用vbscript脚本实现返回 IP 配置数据的代码

用以返回配置数据(类似于 IPCONFIG 命令返回信息)的 WMI 脚本.' Returning IP Configuration Data ' WMI script that returns configuration data similar to that returned by IpConfig. strComputer = "." Set objWMIService = GetObject("winmgmts:\\"& strComputer &

用vbs实现返回 IP 配置数据

描述信息 用以返回配置数据(类似于 IPCONFIG 命令返回信息)的 WMI 脚本. 脚本代码 复制代码 代码如下: ' Returning IP Configuration Data  ' WMI script that returns configuration data similar to that returned by IpConfig.  strComputer = "."  Set objWMIService = GetObject("winmgmts:\\

js 方法实现返回多个数据的代码

复制代码 代码如下: //返回多个数据方法 function getPos(){ var xx = "xx"; alter(xx); var yy = "yy"; return{x:xx,y:yy}; } //调用 function getXY(){ var ret = getPos(); alert(ret.x); alert(ret.y); }

java读取其他服务接口返回的json数据示例代码

前言 现在开发大部分都是服务化或者微服务,数据交换都是跨服务的,这里记录java调取其他接口的方法,下面话不多说了,来一起看看详细的介绍吧. java代码如下: /** * *<p>类描述:接口读取工具.</p> */ public class ReadUrlUtil { public static JSONObject readJsonFromUrl(String url) throws IOException, JSONException { InputStream is =

django通过ajax发起请求返回JSON格式数据的方法

本文实例讲述了django通过ajax发起请求返回JSON格式数据的方法.分享给大家供大家参考.具体实现方法如下: 这是后台处理的: def checkemail(request): user = None if request.POST.has_key('email'): useremail = request.POST['email'] result = {} user = User.objects.filter(useremail__iexact = useremail) if user:

Windows 2008任务计划执行bat脚本失败返回0x1的解决方法

测试环境: C:\>systeminfo | findstr /c:"OS Name" OS Name: Microsoft Windows Server 2008 R2 Enterprise 很多人在Windows 2008里面创建任务计划执行bat文件的时候都会遇到这样的问题:任务计划执行之后返回的状态码是0x1而不是正常的0x0 我今天也被这个问题给坑了,几乎花了一天的时间来排错.单独执行bat脚本一切正常,在Windows 2003的任务计划里面执行bat脚本也没有问题,

shell脚本定时备份MySQL数据库数据并保留指定时间

公司用到的MySQL数据库,经常有同事通过一顿骚操作把一些关键的配置数据误删,每次恢复都要花上不少时间,于是写了个shell脚本,结合corntab每天凌晨备份数据库,并保留7天. 同样的备份脚本也可用于生产环境MySQL数据库定时备份. 环境:CentOS 7.5 / MySQL 5.7 #!/bin/sh # 数据库账号信息 DB_USER="root" DB_PWD="root" DB_HOST="127.0.0.1" DB_PORT=&q

ssm框架controller层返回json格式数据到页面的实现

通常前端页面发送ajax请求,我们只需要返回json格式数据就行 1.在pom.xml加入依赖 <properties> <jackson.version>2.5.4</jackson.version> </properties> <dependencies> <!-- controller返回json --> <dependency> <groupId>com.fasterxml.jackson.core&l

mysql 使用inet_aton和inet_ntoa处理ip地址数据的实例

本文将介绍如何在数据库中使用合适格式保存ip地址数据,并能方便的对ip地址进行比较的方法. 1.保存ip地址到数据库 数据库中保存ip地址,字段一般会定义为: `ip` char(15) NOT NULL, 因为ip地址(255.255.255.255)的最大长度是15,使用15位char已足够. 创建表user CREATE TABLE `user` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT, `name` varchar(30) NOT