WINDOWS中的脚本教程(No.01)
就像学英语一需要一本牛津词典一样,我们需要一个基本的工具书,可以在此帖下载:
http://bathome.net/thread-1985-1-2.html
为了方便在之后的文章中直接引用链接,请把这个CHM电子书保存为 D:\vbjs.chm
比如在 IE 地址栏中输入 mk:@MSITStore:D:\vbjs.chm::/html/vbswhat.htm 就能转到关于VBScript的说明页面。
再次声明,这个所谓“教程”可能不会详细介绍VBS的各种细节,系统化的教程已经有很多了没必要做重复工作。
作为一种语言的开始,一般都会介绍运算符,我今天就说这个,顺带说说变量的定义。
算术运算的加减乘除都一样,+ - * / ,不同的是VBS中有求余数的运算符 Mod ,幂运算(x的y次方)符号 ^ ,把一些文字连接起来的运算符 & 。
你可能发现了,在批处理中 ^ 是转义符,表示紧接它之后的那个字符按照他的文字意思理解, & 是连接两条语句,这里就来对比说明一下语法方面的特殊符号。
注释:BAT 的有 REM 和两个连续的冒号 :: (并不限于两个冒号,可以查看相关帖讨论),相对应 VBS 的有 REM 和单引号 ' ,REM 只能用于一行的最开始,而 ' 可以用在任意位置,一行的 ' 号之后的所有内容被忽略;
几行写在一行:BAT 用一个 & 表示前后是两条语句,但是写在一行上, VBS 中用一个冒号 : (VBS中 & 用于连接两个字符串);
一行写成几行:BAT 无此功能(可能只能用特殊方式实现了),VBS 中用一个下划线 _ ,表示下面一行与这行其实是一行;
转义符:BAT 的是 ^ ,VBS 无此概念,用引号抱起来的都是文字意思,这样导致的结果是有一个特例当字符串中有引号"可能导致系统不知道这个是字符串的边界还是他就是一个引号文字,因此需要用两个引号来表示 "";
示例代码 BAT- @echo off
- REM 语法符号示例
- ::把两行写在一行
- @echo 第一行 & echo 第二行
- :: 转义符
- echo (P)^&(C)2010 "Spring"
- ::一行写成两行
- echo ^
- 这是一条ECHO语句的显示
- pause>nul
复制代码 示例代码 VBS- REM 语法符号示例
- '把两行写在一行
- wscript.echo "第一行" : wscript.echo "第二行" '注释 : VBS中文字都必须要用引号抱起来,这个稍候会说明。
- ' 转义符
- wscript.echo "(P)&(C)2010 ""Spring"""
- '一行写成两行
- wscript.echo _
- "这是一条ECHO语句的显示"
复制代码 要进行运算,一般都会用变量把结果装起来才好操作。
这里又要说一下变量的类型和不同的表示方式了。
在BAT里面我用过的就两种,一种是数字的,一种是字符串的,不同的是字符串的用 set var=字符串,而数字用 set /a var=123456 。
变量使用的时候用百分号%抱起来,例如 %var% 。
而VBS里面有很多种类,现在也先就看两种吧,字符串和数字,赋值的时候字符串用 var="字符串" ,数字用 var=123456 ,
使用变量的时候直接就是 var 。
这里要指出一下语法的不同之处,在BAT里字符一般都不用引号,变量用%抱起来,但是包含空格等特殊符号的时候又用引号,比较混乱;
VBS或者其他高级语言中都是字符串用引号抱起来,而没有抱起来的就是变量了,这样显然比较容易写代码和阅读。
变量的使用示例 BAT- @echo off
- set str1=Spring
- set str2=Brother
- set str=%str1%%str2%
- set /a num1=3
- set /a num2=6
- set /a num=num1+num2
- echo 字符串第一个是%str1%,第二个是%str2%,它们连起来是%str%
- echo 数字第一个是%num1%,第二个是%num2%,它们的和是%num%
- pause>nul
复制代码 变量的使用示例 VBS- str1="Spring"
- str2="Brother"
- str=str1&str2
- num1=3
- num2=6
- num=num1+num2
- wscript.echo "字符串第一个是" & str1 & ",第二个是" & str2 & ",它们连起来是" & str
- wscript.echo "数字第一个是" & num1 & ",第二个是" & num2 & ",它们的和是" & num
复制代码 VBS中还有许多变量类型和运算符,今天暂时讲这么多,我打算在下一节详细介绍一些,这些是最基础的东西,以后哪里都离不开。
最后再介绍两个及其有用的函数,execute 和 eval ,简单的说他们就是执行一个字符串代表的语句,灵活运用的话能达到很多效果。
来看个例子理解它是干什么用的。
BAT只能模拟execute的效果。- @echo off
- set "strProc=echo 这个字符串被当成一条语句执行了。"
- cmd /c %strProc%
- pause>nul
复制代码 VBS- strProc="wscript.echo ""这个字符串被当成一条语句执行了。"""
- execute strProc
- strFunc="3+6"
- result=eval(strFunc)
- wscript.echo "变量的result的值是" & result
复制代码 资料连接:
数据类型
mk:@MSITStore:D:\vbjs.chm::/html/vbsdatatype.htm
运算符
mk:@MSITStore:D:\vbjs.chm::/html/vsgrpoperatorsummary.htm
mk:@MSITStore:D:\vbjs.chm::/html/vsstmexecute.htm
mk:@MSITStore:D:\vbjs.chm::/html/vsfcteval.htm
=== No.01 End === |