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

初识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 MyVar
 
			Set MyVar = CreateObject("MyComponent.MyClass")
 
			Currentreturn = MyVar.MyMethod
 
			If Currentreturn = False then
 
			WScript.Echo MyError
 
			End 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资源站

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值