找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 28188|回复: 6

[原创] WINDOWS中的脚本教程(No.01)

[复制链接]
发表于 2010-5-9 22:42:43 | 显示全部楼层 |阅读模式
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
  1. @echo off
  2. REM 语法符号示例
  3. ::把两行写在一行
  4. @echo 第一行 & echo 第二行
  5. :: 转义符
  6. echo (P)^&(C)2010 "Spring"
  7. ::一行写成两行
  8. echo ^
  9. 这是一条ECHO语句的显示
  10. pause>nul
复制代码
示例代码 VBS
  1. REM 语法符号示例
  2. '把两行写在一行
  3. wscript.echo "第一行" : wscript.echo "第二行" '注释 : VBS中文字都必须要用引号抱起来,这个稍候会说明。
  4. ' 转义符
  5. wscript.echo "(P)&(C)2010 ""Spring"""
  6. '一行写成两行
  7. wscript.echo _
  8. "这是一条ECHO语句的显示"
复制代码
要进行运算,一般都会用变量把结果装起来才好操作。
这里又要说一下变量的类型和不同的表示方式了。

在BAT里面我用过的就两种,一种是数字的,一种是字符串的,不同的是字符串的用 set var=字符串,而数字用 set /a var=123456 。
变量使用的时候用百分号%抱起来,例如 %var% 。

而VBS里面有很多种类,现在也先就看两种吧,字符串和数字,赋值的时候字符串用 var="字符串" ,数字用 var=123456 ,
使用变量的时候直接就是 var 。

这里要指出一下语法的不同之处,在BAT里字符一般都不用引号,变量用%抱起来,但是包含空格等特殊符号的时候又用引号,比较混乱;
VBS或者其他高级语言中都是字符串用引号抱起来,而没有抱起来的就是变量了,这样显然比较容易写代码和阅读。

变量的使用示例 BAT
  1. @echo off
  2. set str1=Spring
  3. set str2=Brother
  4. set str=%str1%%str2%
  5. set /a num1=3
  6. set /a num2=6
  7. set /a num=num1+num2
  8. echo 字符串第一个是%str1%,第二个是%str2%,它们连起来是%str%
  9. echo 数字第一个是%num1%,第二个是%num2%,它们的和是%num%
  10. pause>nul
复制代码
变量的使用示例 VBS
  1. str1="Spring"
  2. str2="Brother"
  3. str=str1&str2
  4. num1=3
  5. num2=6
  6. num=num1+num2
  7. wscript.echo "字符串第一个是" & str1 & ",第二个是" & str2 & ",它们连起来是" & str
  8. wscript.echo "数字第一个是" & num1 & ",第二个是" & num2 & ",它们的和是" & num
复制代码
VBS中还有许多变量类型和运算符,今天暂时讲这么多,我打算在下一节详细介绍一些,这些是最基础的东西,以后哪里都离不开。

最后再介绍两个及其有用的函数,execute 和 eval ,简单的说他们就是执行一个字符串代表的语句,灵活运用的话能达到很多效果。
来看个例子理解它是干什么用的。

BAT只能模拟execute的效果。
  1. @echo off
  2. set "strProc=echo 这个字符串被当成一条语句执行了。"
  3. cmd /c %strProc%
  4. pause>nul
复制代码
VBS
  1. strProc="wscript.echo ""这个字符串被当成一条语句执行了。"""
  2. execute strProc
  3. strFunc="3+6"
  4. result=eval(strFunc)
  5. 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 ===

评分

参与人数 2PB +10 技术 +1 收起 理由
mxxcgzxxx + 1 对BAT到VBS的初学者很好用
neorobin + 10 无条件顶起, 以后再抽空细读

查看全部评分

发表于 2010-11-30 20:01:53 | 显示全部楼层
谢谢分享  帮你顶哈
发表于 2010-12-25 11:05:23 | 显示全部楼层
感谢楼主
因为小弟只熟悉批处理..
而这篇明确指出vbs与bat异同之处
对我很有帮助
非常感谢!!!
发表于 2011-11-6 18:57:06 | 显示全部楼层
苦苦地学着VBS中。。。
发表于 2012-2-26 09:06:50 | 显示全部楼层
讲的很好很细致啊
发表于 2012-5-24 10:15:51 | 显示全部楼层
又学会了一个输出语句(之前只会用msgbox)
发表于 2012-5-24 15:16:23 | 显示全部楼层
还是不懂怎么用vbs,像批处理保存为.bat文件就能用,VBS怎么用?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-17 00:58 , Processed in 0.019109 second(s), 8 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表