初识Windows 脚本文件(*.wsf)

Windows 脚本文件(*.wsf) 是含有可扩展标记语言 (XML) 代码的文本文档,它综合了几个可增强脚本灵活性的功能。由于 Windows 脚本文件不是特定于引擎的,因此它们可包含与 Windows 脚本兼容的任何脚本引擎中的脚本。它们充当容器。

使用 .wsf 文件,可以在创建脚本时使用以下功能:

.wsf 文件支持实现
1.  Include语句 将函数从 VBScript 或 JScript 文件合并到 Windows 脚本宿主项目中;
2.  多引擎  每个文件使用多种脚本语言;
3.  类型库  将常数添加到代码中;
4.  工具 使用任何 XML 编辑器编辑文件;
5.  一个文件中的多项作业 将所有的代码存储在一个位置;

1.  Include 语句
如果您的 .js 和 .vbs 文件来自以前版本的 Windows 脚本宿主项目,则 .wsf 文件允许您将它们用于 Windows 脚本宿主。.wsf 文件封装了一个可以被多个 .wsf 文件使用的函数库。

下面的示例显示包含 JScript 文件 (fso.js) 的.wsf 文件,以及在包含文件中调用函数 ("GetFreeSpace") 的 VBScript 函数。还显示 fso.js 的内容。

<job id="IncludeExample">   <script language="JScript" src="FSO.JS"/>  <script language="VBScript">     ' 获得驱动器 C 的可用空间。     s = GetFreeSpace("c:")      WScript.Echo s </script></script></job>

fso.js 文件包含以下内容:

function GetFreeSpace(drvPath){  var fs, d, s;   fs = new ActiveXObject("Scripting.FileSystemObject");   d = fs.GetDrive(fs.GetDriveName(drvPath)); s = "Drive " + drvPath + " - " ;  s += d.VolumeName;  s += " Free Space: " + d.FreeSpace/1024 + " Kbytes";  return s;
}

2.  多引擎支持

由于一种脚本语言不能涵盖用户需要的所有功能,因此 Windows 脚本宿主为您提供了可以在一个 .wsf 文件中结合使用多种语言的功能。下面的示例显示了同时包含 VBScript 和 PerlScript 代码的 .wsf 文件:

<job id="PERLandVBS"><script language="PerlScript">sub PerlHello{  my $str = @_[0];$WScript->Echo($str);     }</script><script language="VBScript">WScript.Echo "Hello from VBScript"PerlHello "Hello from PERLScript"</script></job>

3.  类型库支持
在下面的示例中,"MyComponent" 是用 Microsoft Visual Basic 5.0 开发的。"MyComponent" 用以下语句定义了常数 MyError。

Public Const MyError = "You are not using MyComponent correctly"
类型库包含在安装于 C:\MyComponent 下的 mycomponent.lib 中。

<job id="IncludeExample"><reference progid="MyComponent.MyClass"><script language="VBScript">Dim MyVarSet MyVar = CreateObject("MyComponent.MyClass")Currentreturn = MyVar.MyMethodIf Currentreturn = False thenWScript.Echo MyErrorEnd If</script></reference>
</job>

4. 工具支持
由于 .wsf 文件采用 XML 格式,所以可以使用支持 XML 的任意编辑器来编辑 .wsf 文件。其中包括文本编辑器,如“记事本”。

5. 一个文件中的多项作业
CScript //Job:MyFirstJob MyScripts.wsf
不用将所有脚本分别保留在不同的文件中,可以将它们合并到一个.wsf 文件中,并分解成几个不同的作业。然后用与下例相似的语法分别运行各个作业,该示例中的 "MyFirstJob" 是 MyScripts.wsf 文件中包含的作业名称。

WScript.exe 和 CScript.exe 选项
           cscript因为把输出放进了控制台 所以可以对它重定向 方便程序调用
wscript直接用窗口输出 适合调试程序和编写小工具 在windows下不用cmd的话cscript的输出会一闪而过 大多数情况下,列在下表中的选项适用于 WScript.exe 和 CScript.exe。例外情况会加以注释。

参数 说明
//B 批处理模式;隐藏用户提示和脚本错误在命令行中的显示。默认模式是交互模式。
//D 打开调试程序。
//E:engine 用指定的脚本引擎执行脚本。
//H:CScript 或 //H:Wscript 将 CScript.exe 或 WScript.exe 注册为运行脚本的默认应用程序。如果未指定,则将 WScript.exe 假设为默认应用程序。
//I 默认。交互模式;允许显示用户提示和脚本错误。与批处理模式相反。
//Job:<JobID> 从 .wsf 文件运行指定的 JobID。
//logo 默认。显示标题。与 nologo 相反。
//nologo 防止在运行时显示执行标题。默认设置是 logo。
//S 保存该用户的当前命令行选项。
//T:nn 启用超时:脚本可以运行的最大秒数。默认设置是无限制。//T 参数通过设置定时器来防止脚本执行过度。当执行时间超过指定值时,CScript 用 IActiveScript::InterruptThread 方法中断脚本引擎,并终止过程。
//U 用于 Windows NT 和 Windows 2000,强制命令行以 Unicode 格式输出。CScript 无法决定以 Unicode 还是以 ANSI 输出;默认设置为 ANSI。
//X 在调试程序中启动该程序。
//?

本文来自:DOS资源站

[转载]初识Windows 脚本文件(*.wsf)相关推荐

  1. 使用 Windows 脚本文件 (.wsf)

    使用 Windows 脚本文件 (.wsf) Windows 脚本文件 (*.wsf) 是含有可扩展标记语言 (XML) 代码的文本文档.它综合了几个可增强脚本灵活性的功能.由于 Windows 脚本 ...

  2. 用C#执行vbs脚本文件

    最近Windows服务器自动备份占用磁盘快满了,之前的解决的方法是编写vbs脚本自动压缩备份文件,需要在windows设置计划任务来执行,最近发现计划任务执行失败了,还得重新登录windows重启计划 ...

  3. Windows PowerShell 2.0创建调用脚本文件

    在PowerShell中不存在文件和目录的概念,涉及文件和目录的操作总是转换为项(item)处理,即Get-Item.Get-ChildItem和Get-ItemProperty.在PowerShel ...

  4. windows 下执行mysql脚本_Windows下批处理执行MySQL脚本文件

    一. @echo off Setlocal enabledelayedexpansion ::CODER BY Mark_Li POWERD BY iBAT 1.6 cd "C:\Progr ...

  5. Windows 使用命令执行 sql 脚本文件

    文章目录 MySQL 数据库 方法一:使用 mysql 命令 方法二:使用 source 命令 Oracle 数据库 MySQL 数据库 方法一:使用 mysql 命令 未配置 MySQL 的环境变量 ...

  6. win7计算机找不到脚本文件夹,解决win7开机提示“windows script host 无法找到脚本文件”的方法...

    接下来小编要和大家说到一个新的win7系统故障,其实以前也有用户和小编提到过它,都是由于小编的电脑不是win7就一直没有解决的方法.最近换成win7的电脑之后发现开机的时候系统会弹出一个windows ...

  7. 无法找到脚本文件 C:/Windows/explorer.exe:574323188.vbs

    今天打开电脑后电脑有点反常,在启动时没有运行 "局域网" 保护的程序,而且还他是 "无法找到脚本文件"如下图: 发现这个东西后,第一反应,拔掉网线.因为很有可能 ...

  8. 【Windows包管理器(choco)】choco : 无法将“choco”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正 确,然后再试一次。

    问题描述 choco : 无法将"choco"项识别为 cmdlet.函数.脚本文件或可运行程序的名称.请检查名称的拼写,如果包括路径,请确保路径正 确,然后再试一次. 所在位置 ...

  9. Praat脚本文件教程之Scripting2.How to script setting windows

    不是所有的菜单命令是像之前那几页那么简单,之前那几页的内容只是快速的行动一旦你从菜单中选择了他们(例如:Play,Erase all).在Praat中许多命令需要使用者去提供额外的信息,这些是以双引号 ...

最新文章

  1. python学精通要多久-python多久能精通
  2. springboot 使用i18n进行国际化
  3. 为什么要用动态代理?静态代理与动态代理详解
  4. Java基础教程——Set
  5. oracle调试死掉,oracle自动死掉了
  6. Syntax error, parameterized types are only available if source level is 1.5 or greater
  7. Angular 2 Decorators - 1
  8. springboot工程的热部署
  9. 一次900万+数据量的 SQL 查询优化分析【上百倍性能优化】
  10. FindFirstFile
  11. 自动控制原理复习——第二章 控制系统的数学模型,系统框图简化,信号流图,梅森公式,控制系统的传递函数(详细介绍)
  12. 配合蓝牙打印的encoding-indexes.js文件内容:
  13. 经典软件项目源码汇总
  14. 常见笔顺错误的字_原来这么多年,我写字的笔顺一直都是错的
  15. 某条微博评论数据爬取
  16. 鸿蒙系统安全模式,安全模式怎么连接wifi
  17. ACM:搜索算法专题(1)——24点
  18. 去掉底部 Powered by PageAdmin CMS 方法
  19. 仿微信通讯录滑动定位ListView功能
  20. 博途组态阀岛_SMC EX260总线阀岛

热门文章

  1. MyBatis使用心得
  2. 计算机机房联合接地线用什么线,机房中 机柜设备外壳为什么接地? 机房如何做接地?...
  3. 高效能程序员的修炼读后感
  4. c语言'字符串截取函数,C语言中的字符串截取函数及应用
  5. 了解图像分割的深度学习技术(2019年语义分割论文综述)
  6. 【华为WLAN】WLAN网络,AC旁挂直接转发基本配置。
  7. 基才HDLC协议的SDH传输系统板间通信的设计
  8. 与古鲁打交道的礼节和教养(部分摘自图书-程序员修炼之道)
  9. android 设置状态栏
  10. heapdump定位内存泄露