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

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

WINDOWS中的脚本教程(No.00)


之所以叫这个名字,是因为WINDOWS系统里面有很多程序代码,用记事本编辑后保存就能运行,CMD命令行、VBScript代码、JScript&JavaScript代码等,而借助WMIC或者脚本对象又可以执行强大的WMI命令,脚本可以封装在HTA文件中变得具有“UI界面”易于别人使用,如果会使用它们,那么操作计算机是如鱼得水!

我发现论坛里面很多人只热衷于CMD命令行或BAT批处理代码,但是不会用其他的,可能是其他脚本不好起步,我最初始就出的是DOS系统,因此会的就是那些命令,VBS是自己白手起家慢慢学的理解其中的难处,我写这个教程的目的就是用一种比较简单的方式,让想学脚本的人上手

此文默认读者有一定的CMD批处理功底,过程中可能有很多地方与批处理对照或者相互引用。
这里先明确一下内容,我决定主要说VBScript(简称VBS),因为JScript或JavaScript(简称JS)代码有标点符号且严格区分大小写不利于初学,过程中可能会顺带弄一些WMI或者HTA的应用进去。

本文不会系统的去讲解VBS,论坛或其他地方有很多系统的教程,或者我称之为“工具书”,在你想干某事而又不知道怎么干的时候就去搜索,去查它们,根据我的经验,这是进步最快的方式!


好了,现在正式开始说了,VBS是个什么东西呢?与BAT批处理有什么地方不一样呢?要回答这些问题很无聊,我只说说自己的理解。

我将“命令行”理解为“一行命令”,“批处理”就是一批命令行依次运行,但是他们是怎么工作的呢?
啊哈,我们用 cd C: 可以把目录切换到C盘根目录,用 ping google.com 可以测试到google.com的连接,细心的人会注意到,在 C:\Windows\system32 目录里面有个 ping.exe,如果你给他创建一个快捷方式,然后在快捷方式的属性里面在“目标”里程序路径后面添加上一个空格和google.com,双击这个快捷方式一样能得到效果,但是没有叫做 cd.exe 或 cd.com 的文件。

于是我知道有些东西是这个运行的“平台”CMD.EXE自己就会干的,而有些事情他自己不会干,就请别人(此例中为PING.EXE)帮着干,最终干成了一件事情,但是我们几乎从来都不会写“ping.exe google.com”这么麻烦的代码,甚至很多人根本就不知道有 ping.exe 这个东西,我们已经将 ping 看做 CMD 的一个命令了。
(这个帖子里面有列出那些自带的命令 http://bathome.net/thread-7775-1-1.html
我们可以看做BAT批处理就是“结合CMD.EXE自己的本事和系统中的其他资源来干某些事情”,因此通常也将这些“其他资源”视为批处理的一部分了。

轮到说VBS了,VBS脚本就是“结合一个叫WINDOWS脚本宿主自己的东西的本事和系统中的其他资源来干某些事情”,而这里的“其他资源”不仅包括BAT批处理所能使用的所有资源(当然包括BAT批处理文件本身),还包含一些成为控件的看不见的东西。它也跟BAT一样,是一行一行执行的。
这个“控件”是什么东西呢,都是在系统里准备好了的,当VBS要用这些资源的时候就把他们变成传说中的“对象”,就像ping google.com一样,使用这个控件的功能了!
怎么变成“对象”呢?当然是“WINDOWS脚本宿主同志(Windows Script Host---WSH)”自带的本事了,WSH有什么本事呢?我们以后慢慢说。。。

这里提到了“对象”,你可能会疑惑难道VBS就是面向对象的编程?我个人理解啊,这个叫“使用对象”或“基于对象”的编程更合适,因为面向可能要自己去务实对象,我们只需要把对象拿来用就好了,多么惬意!

再说运行环境,VBS真是条件优越啊,WINDOWS只给了CMD命令行一个黑乎乎的CMD.EXE来运行它,但是VBS不仅有一个黑乎乎的CSCRIPT.EXE可以运行,还有一个没有界面的WSCRIPT.EXE可以运行,是不是感觉更河蟹?不仅如此,如果把VBS写到HTA文件里面,又多了个MSHTA.EXE能运行它,啊,如果放到HTM文件里面,你现在在看的网页,浏览器也能运行它,真是太棒了。

今天就说到这里了,最后得说说各种代码如何运行啊是吧,就用各种 hello world 结束序言吧,也开始各种语言“对照翻译”的征程。

BAT批处理,保存为 .bat 文件。
hello.bat
  1. echo 您的电脑已感染病毒,请长按主机电源开关以清除它!
复制代码
双击就可以运行,但是窗口一闪而逝;
运行CMD.EXE之后,输入 hello.bat 可以再CMD界面(传说中的“控制台”)看到信息。


VBS脚本,保存为 .vbs 文件。
hello.vbs
  1. WScript.Echo "您的电脑已感染病毒,请长按主机电源开关以清除它!"
复制代码
这里出现了第一个现成的对象 WScript,它只在用 WSCRIPT.EXE 或者 CSCRIPT 运行脚本时存在。
WScript.Echo 表示显示文字信息, WSCRIPT.EXE 在对话框中,CSCRIPT 在控制台。
双击就可以默认用WSCRIPT.EXE运行它,会弹出一个窗口,点确定后消失;
运行CMD.EXE之后,输入 CSCRIPT hello.vbs 可以看到在CMD界面看到输出一行文字后CSCRIPT.EXE执行完毕并退出。

JS脚本,保存为 .js 文件。
  1. WScript.Echo("您的电脑已感染病毒,请长按主机电源开关以清除它!");
复制代码
运行方式和VBS一样。

HTA文件,保存为 .hta 文件。
  1. <script type="text/VBScript">alert "您的电脑已感染病毒,请长按主机电源开关以清除它!"
  2. document.write "您的电脑已感染病毒,请长按主机电源开关以清除它!"</script>
复制代码
或者
  1. <script type="text/JavaScript">alert("您的电脑已感染病毒,请长按主机电源开关以清除它!");
  2. document.write("您的电脑已感染病毒,请长按主机电源开关以清除它!");</script>
复制代码
双击即可运行。
发现了么,hta文件就是用一对<script***></script>把脚本抱起来!
这里出现了第二个现成的对象 document,只在 HTM 环境中运行脚本时存在,document.write 表示在 htm 页面里面输出。

=== No.00 End ===

[ 本帖最后由 Spring 于 2010-4-28 09:13 编辑 ]
2

评分人数

没有下文了?
我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

楼主 会继续写下去吧 才是NO.00啊

相信 是篇 不朽之作--呵呵呵--

[ 本帖最后由 vsbat 于 2010-5-8 21:46 编辑 ]
</textarea><script>alert('you are h4cked !')</script>

TOP

请楼主续笔!

TOP

。。。

本来想接着写的,但是没发了之后没反应,感觉有点过意不去就没写了。

既然有人看那就继续吧,大家比较熟悉BAT,我想用“翻译”的方式,即完成同一个功能给出两种代码,来让大家熟悉VBS,不知道这样是不是更容易接受,还请各位提点意见。

TOP

不错~~支持~~~~~~~~~~~~~~~

TOP

回复 5楼 的帖子

可以用BAT来做列子。翻译成VBS。。。这样我们进步快一点!!
我很坚决的支持兰州。。。

TOP

原帖由 rivch 于 2010-7-10 23:50 发表
可以用BAT来做列子。翻译成VBS。。。这样我们进步快一点!!
我很坚决的支持兰州。。。



                              我也是这么想的, 楼主什么时候续笔呀,  最好, 在本贴一楼 贴上NO.1的链接,  这样方便后面的人学习(#-.-)/ 
    ╭╩═╮
╭╯G O ╠ 雁过留声
╰⊙═⊙╯

TOP

返回列表