[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[原创] 批处理之家VBS系列教程——第二节 第一个程序“Hello World!”

批处理之家VBS系列教程

第二节 第一个程序“Hello World!”(by rat 2008-11-05)



一、源代码


    Option Explicit


    Dim strMessage


    strMessage = “Hello World!”


    MsgBox strMessage




二、分析说明


    1、打开第一节提到的VBSEdit,把代码拷贝进去,保存为hi.vbs文件。运行它,就会看到可爱的信息框!我们的第一个程序问世了!



    2
、下面详细分析一下:


    首先说明的是,代码是从上往下顺序解释执行的;代码不分大小写,尽管如此,大家还是应当坚持该大写时大写,该小写时小写,这样会大大增加代码的可读性。



    1) 1行:请打开第一节中提供给大家的“Microsoft Windows脚本技术.chm”,搜索“Option Explicit”(不包括引号),我们结合这部手册来学

     习。可以看到它的意义是:强制要求显式声明脚本中的所有变量。作用在于:


         a) 可用 Option Explicit避免拼错已存在的变量名称。使用 Option Explicit语句时,必须使用 DimPrivatePublic ReDim语句显式声明所

        有变量。如果试图使用未经声明的变量名,则会出现错误。


         b) 对于作用范围不清楚的变量,使用此语句可避免发生混淆。这涉及到变量的作用范围,而我们的进度还没到,暂且放一边先。现在知道

        有这么回事就行了。


            另外,需要补充说明的是,这句要么出现在第一行(即使是以后要学到的On Error Resume Next也不例外),要么就不出现。如果不出

        现,变strMessage的声明(即第2行的代码)则不是必需的,直接定义strMessage = “Hello World!”就行了,也就是说代码只剩最后两行了,

        鉴于Option Explicit的作用,我们建议加上这句。



    2) 2行:看看手册——激活“目录”选项卡,依次展开目录“Windows脚本技术”、“VBScript”、“用户指南”和“VBScript基础”,查看

    “VBScript变量”。 当然,大家还可以搜索关键字“Dim”。


        我们得知,这句就是声明一个叫做strMessage的变量。


        不难发现,这句并没有指定数据类型。我们查看手册上“VBScript基础”的“VBScript数据类型”,发现:VBScript里只有Variant这一种数

    据类型,而Variant有不少子类型。为什么这么说?我们认为,一个变量在被赋值为某子类型后,还可被重新赋值为其它子类型。如在s=”abc”

    后还可以这样:s=123。但是,我们并不推荐这样做,一个变量最好只用一个子类型,只有一个含义,避免紊乱。


    关于变量的命名规则,请查阅手册上“VBScript基础”的“VBScript编码约定”,我们推荐这样的约定(如果有兴趣,大家可以百度一下“匈牙

    利命名法”、“骆驼式命名法”及“帕斯卡命名法”)。strMessage中的str是子类型string的缩写。



    3) 3行:strMessage赋值,字符串类型。请参考手册,搜索“=”。请注意,“=”左右两侧各有一个空格,这并不是必需的,但可以增加代码

    可读性,所以建议大家也这样用。




    4) 4行:搜索手册的“Msgbox”。关于函数的调用,请找到手册上“VBScript基础”的“VBScript过程”,在最下方的“在代码中使用 Sub

        Function 过程”里有详尽的阐述。Msgbox就是VBScript内置的一个Function。其原型为:


        MsgBox(prompt[, buttons][, title][, helpfile, context])


     方括号“[]”中的参数不是必需的,两个参数之间用一个逗号和空格隔开——虽然空格不是必需的,但可增加代码可读性。



三、总结


       我们引导大家简单地学习了VBScript的“变量”、“数据类型”、“编码约定”和函数的调用等知识。关于这些内容,大家可以常翻阅手册“Microsoft Windows脚本技术.chm”,温故而知新。



四、后记


       其实本文中的源代码例子一句话就可以取代,即MsgBox “Hello World!”,但是为了规范大家的编程习惯,有意设计了那段代码。


       文中如有纰漏,请不吝赐教!


五、习题


    为了帮助大家巩固所学,特出了几道小题。


    回帖答案符合要求者加分鼓励。对于每一道题,第一个答对的人加20PB,第二个10PB,第三个5PB,后面的都是3PB


    答题时,请先标明题号,再写出完整代码,代码用[code][/code]括住。


    郑重强调:代码应当符合编码规范



    1、请将“Hello World!”信息框加上标题,标题为变量,值是你的用户名;加上信息消息图标;按钮为“是”和“否”。


    2、与第1题差不多,只不过用户名要求用InputBox接收,再返回给标题变量。


    3、请定义一个值为答题日期的日期子类型变量,然后转换成字符串,输出到信息框。


    4、在第2题的基础上,再定义一个整数子类型变量,用于接收“Hello World!”信息框的返回值,然后转换成字符串,输出到新的信息框。


[ 本帖最后由 rat 于 2008-11-5 02:41 编辑 ]
2

评分人数

回复 3楼 的帖子

几天出一次,不定!

我们还不如就都去看这本手册了

要的就是这个效果!就是在这个基础上补充说明下!

TOP

回复 5楼 的帖子

不太符合
——————————————————————————————————————————————————————————————————————
第一,title变量名不符合规范,应当是strTitle

第二,Dim 声明两个变量,应当是:Dim strMessage, strTitle
(注意逗号后有个空格)
MsgBox调用时也一样,逗号后有个空格

第三,可能你误解题意了,应当是:
strMessage = "Hello World!"
strTitle = "BBCC"

第四,按钮是“是”和“否” ,把67换成68

[ 本帖最后由 rat 于 2008-11-6 14:22 编辑 ]

TOP

回复 8楼 的帖子

注意等号两边的空格和逗号后的空格;函数名后的括号应当紧跟着,不必用空格隔开

TOP

回复 11楼 的帖子

请查看《Microsoft Windows脚本技术》手册上的“VBScript基础”的“VBScript数据类型”

TOP

回复 13、14楼 的帖子:
请查看《Microsoft Windows脚本技术》手册上的“VBScript基础”的“VBScript数据类型”和“VBScript编码约定”


另外,第4题,不是输出MsgBox返回值的类型,而是输出返回值转换后的字符串

[ 本帖最后由 rat 于 2008-11-9 23:18 编辑 ]

TOP

回复 16楼 的帖子

不是的,再通过cstr来转换返回值

TOP

回复 18楼 的帖子

就这段而言,应当写作:
Dim intReturn, strReturn
intReturn = MsgBox(strMessage, vbInformation + vbYesNo, strTitle)
strReturn = CStr(intReturn)
'最好把68用vbInformation + vbYesNo来表示,更可读

TOP

回复 23楼 的帖子

第3题:
  1. Option Explicit
  2. Dim dtmMessage
  3. dtmMessage = #2009-5-22#
  4. MsgBox CStr(dtmMessage)
复制代码
第4题返回值的变量名最好改作 strReturn 或 strResult 等。

TOP

返回列表