[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]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

评分人数

建议在每个章节的末尾,添加其他章节的链接,方便大家查看。
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

回复 3楼 的帖子

几天出一次,不定!

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

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

TOP

题一
  1. Option Explicit
  2. Dim strMessage,title
  3. strMessage = "BBCC"
  4. title = "变量"
  5. MsgBox strMessage,67,title
复制代码
不知道合要求不...
1

评分人数

    • rat: 鼓励一下第一个答题的PB + 10

TOP

回复 5楼 的帖子

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

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

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

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

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

TOP

谢谢rat兄的指点,看来在变量方面要多加努力!

TOP

第二题
  1. Option Explicit
  2. Dim strMessage, strTitle
  3. strMessage = "Hello world!"
  4. strTitle = InputBox("Enter your name." ,strMessage)
  5. MsgBox strMessage,68,strTitle
复制代码

[ 本帖最后由 BBCC 于 2008-11-7 19:41 编辑 ]

TOP

回复 8楼 的帖子

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

TOP

ok!
养成一个好习惯很重要!

TOP

问问rat兄,第三第四题如何做?

TOP

回复 11楼 的帖子

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

TOP

题三是这样吗?
  1. Dim strDate
  2. strDate = "9,11,2008"
  3. strDate = cdate(strDate)
  4. strDate = cstr(strDate)
  5. msgbox(strDate)
复制代码

TOP

题四
  1. Option Explicit
  2. Dim strMessage, strTitle, strValue
  3. strMessage = "Hello world!"
  4. strTitle = InputBox("Enter your name." ,strMessage)
  5. strValue = VarType(MsgBox (strMessage,68,strTitle))
  6. MsgBox(strValue)
复制代码
看来vbs的变量类型很复杂

TOP

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


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

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

TOP

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

兄的意思是再通过cstr来转换变量类型?

TOP

返回列表