Windows Scripting Host (WSH) 是什么?

本篇主要介绍 WSH 基础知识,我的以为很难理解,并且 Research 起来还很乱,因此决定记录下来!html


WSH 是什么:

WSH 全称是,Windows Scripting Host,中文译为“Windows脚本宿主”;是微软的,一种脚本技术;是内嵌在 Windows 系统中的,脚本语言的,工做环境。在这个环境中,咱们能够,以文字的形式,写脚本,并执行脚本。环境中,还自带了一些对象,同时也可使用其余,第三方COM对象。这个环境,使咱们能够充分利用脚本,来实现计算机工做的,自动化。所谓的 Host 也就是指,提供了,能让 VBScript 执行的,一切的资源,的环境。而这所谓的,一切的资源,都包含了什么呢?就包括了以下:shell

  1. Script engines (脚本语言支持,如,VBScript)
  2. Script execution hosts (wscript.exe 和 cscript.exe 执行文件)
  3. The WSH core object model (WSH 对象模型,就是自带了一些对象给你用)

而,这三个 Component 之间的关系,就如图下:编程



WSH 的用途:

这是我摘抄下来的两句话,基本归纳了 WSH 的用途:网络

  • WSH is an automation technology for Microsoft Windows operating systems.
  • WSH is a Windows administration tool.

第一句是说,WSH 是一种自动化技术;第二句是说,WSH 是一种 Admin 工具;合起来就是,WSH 主要用于自动化,一般用于 Admin 任务。

工具

WSH 的历史由来:

早年间的系统,里面都有一个 Command Shell,人们能够往里输入,文字命令,而后,系统再回给你一堆文字。这些文字命令,既能控制系统的方方面面,也能控制电脑的运行。很快的,设计系统的人意识到,不少平常电脑操做的命令,都是不断重复的文字。因而以后的系统,就增长的新功能,就是,能够把命令存在一个文件中,而后,系统能够随时读取并执行,这个文件中储存的命令。而后,这个“命令的清单”,就被称为了,咱们都知道的,batch files(批处文件),也叫作,shell scripts,batch jobs。随后的几年,batch file 获得了不少增强,如,支持 Parameterization (参数化),就是支持程序执行时,提供 Arguments。而后,又增长了 Control Flow 的支持,就是 if 和 loop 什么的。后来,渐渐的,batch files,发展为了,一门简单的 Macro 语言。可是,batch files 语言,也有一系列的缺点和不足;如,syntax 很麻烦,而且,和其余 Windows 程序的交互,很是的局限。正是这些缺点的不足,让微软决定开发一套,不一样于传统的 Commend-Line 概念的,而是,基于,现代的 Object-Oriented 概念的,脚本技术。这套新技术,被统称为,System Scripting,也就是,系统脚本。而后从 Windows98 起,微软就推出了 WSH 和 VBScript,用于取代原来的,Batch Script 技术。WSH 提供了一个,干净整洁的,脚本环境,和一套完整的,对象模型。让咱们能够调用其余程序,和访问系统功能,VBScript 则提供了一套,逻辑清晰,结构工整的,脚本语言。这也就是,WSH 和 VBScript,的历史由来。

oop

WSH 对象模型:

英文全称为,Windows Script Host Object Model;我的理解,对象模型,就是对象(Object)的组织结构(图)。其实,整个 Windows 操做系统,均可以理解为,一大堆对象(Objects)的集合。一般,每一个编程环境,都会提供本身的对象模型,而后,开发人员可使用这些对象模型,解决各类问题。而,WSH 对象模型,就是 WSH 工做环境里,自带的一套,核心对象的,模型。一共自带了14个对象,各有各的做用,详见下面的说明:

this

关于 Wscript 对象:

其中,Wscript Object,是 WSH 对象模型,中的 Root Object (根对象),It is from this object that all other objects are instantiated。Wscript Object,每次开机时候,就自动被 established,因此,写代码的时候,能够拿来就用,不用再被 instantiated。例如,你能够直接使用 Wscript 的 Method,Wscript.Sleep()。可是,其余任何Object,你要像使用它的 Method,你都须要像用 Wscript.CreateObject(),去 Establishes an instance of the specified object,而后,才能用这个新的 instance 去调用,它旗下的 method 和 attribute。下面是,WSH 对象模型的图,再下面的表格是,上面提到的14个核心对象的做用。

google



No. Name Description
1 Wscript 主要做用是提取命令行变量, 肯定脚本文件名, 肯定 WSH 执行文件名 (wscript.exe 仍是 cscript.exe),
确认 Host 版本信息, 建立, 关连及分离 COM 对象, 写入事件,
按程序结束一个脚本文件的运行, 向默认的输出设备(如对话框, 命令行)输出信息等.
2 WshArguments 主要做用是获取所有的命令行变量.
3 WshNamed 负责获取指定的命令行参数集.
4 WshUnnamed 负责获取未经指定的命令行参数集.
5 WshNetwork 主要做用是开放或关闭网络共享, 链接或断开网络打印机, 映射或取消网络中的共享, 获取当前登录用户的信息.
6 WshController 建立一个远程脚本对象.
7 WshRemote 实现网络中对计算机系统的远程管理, 也可按计划对其它程序或脚本进行处理.
8 WshRemote Error 做用是当一个远程脚本(WshRemote 对象)因脚本错误而终止时, 获取可用的错误信息.
9 WshShell 主要负责程序的本地运行, 处理注册表项, 建立快捷方式, 获取系统文件夹信息, 处理环境变量等.
10 WshShortcut 主要用于按计划建立快捷方式.
11 WshSpecialFolders 用于获取任意一个 Windows 特殊文件夹的信息.
12 WshURLShortcut 用于按程序要求建立进入互联网资源的快捷方式.
13 WshEnvironment 用于获取任意的环境变量(如 WINDIR, PATH, 或 PROMPT).
14 WshScriptExec 用于肯定一个脚本文件的运行状态及错误信息.


篇尾总结:

若是想更多的了解,VBScript 或者 Batch Script,强烈推荐下面两本书:操作系统

  • 《Windows Script Host》Tim Hill
  • 《Windows NT Shell Scripting》Tim Hill

惋惜好像没有中文版,并且都是1999先后的书籍了。我从网上的旧书中淘到了一本,哈哈。亲自读过第一本,确实很好。文中部份内容,也借鉴了这本书。好吧,就写这些吧!.net


参考资料:

  1. Windows Script Host 是什么-ZOL问答
  2. Windows脚本宿主_百度百科
  3. WSH_百度百科
  4. Windows Script Host Object Model
  5. WScript Object | Microsoft Docs
  6. WshShell Object | Microsoft Docs
  7. Windows Script Host - Tim Hill - Google Books
  8. Windows Script Host - Wikipedia
  9. VBScript - What Is WSH?
  10. WshShell 对象介绍 - CSDN博客
  11. Wscript对象详解 - CSDN博客
  12. 《Microsoft WSH and VBScript Programming for the Absolute Beginner》
相关文章
相关标签/搜索