windows脚本 使用 Windows 脚本文件 (.wsf) 2/4

简介: 要简化脚本编写,可以将一个脚本分成多个部分。使用这种方法,将会创建一个 .wsf 文件并将其用作执行的起点。其他部分可以是 .js 或 .vbs 文件。将从 .wsf 文件中引用这些文件。 该方法使您的代码更为强健,因为它将代码的各个片段隔离开来,允许您一次调试一个片段。

要简化脚本编写,可以将一个脚本分成多个部分。使用这种方法,将会创建一个 .wsf 文件并将其用作执行的起点。其他部分可以是 .js 或 .vbs 文件。将从 .wsf 文件中引用这些文件。

该方法使您的代码更为强健,因为它将代码的各个片段隔离开来,允许您一次调试一个片段。它还使您的代码能重复利用,因为它允许您创建可反复调用的函数。

Windows 脚本文件 (*.wsf) 是含有可扩展标记语言 (XML) 代码的文本文档。

.wsf 文件支持

实现

Include 语句

将函数从 VBScript 或 JScript 文件合并到 Windows 脚本宿主项目中。

<job id="IncludeExample">

<script language="JScript" src="FSO.JS"/>

<script language="VBScript">

' 获得驱动器 C 的可用空间。

s = GetFreeSpace("c:")

WScript.Echo s

<sScript>

</job>

多引擎

每个文件使用多种脚本语言。

<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>

类型库

将常数添加到代码中。

<job id="IncludeExample">
<reference object="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>
</job>

工具

使用任何 XML 编辑器编辑文件。

一个文件中的多项作业

将所有的代码存储在一个位置。

该示例中的 "MyFirstJob" 是 MyScripts.wsf 文件中包含的作业名称。

CScript //Job:MyFirstJob MyScripts.wsf
文件结构
<?xml version="1.0" ?>
<package>
       <comment>
       Demo WSH
       </comment>
       <job id="ie">
              <?job error="True" debug="True" ?>
              <runtime>
                    <description>**</description>
                <named name="IP" helpstring="local or remote ip" type="string" required="true" />
                    <named name="U" helpstring="User Name" type="string" />
                    <example></example>
              </runtime>
              <script language="VBScript"><![CDATA[ ?-]]>
              </script>
       </job>
       <job id="office">?-

       
       </job>
</package>

基本上的文件结构和以上类似,具体在“Microsoft Windows脚本技术.CHM”文档或者MSDN

ms-help://MS.VSCC.v90/MS.MSDNQTR.v90.chs/script56/html/vtoriMicrosoftWindowsScriptTechnologies.htm

中有描述。

文件关联和执行

选择一个.wsf文件右键可以看到看到其关联的是Wscript.exe,因此双击这样的文件时,就是以wscript.exe执行.wsf文件的

如果手动控制执行,有两个形式:

GUI形式:wscript.exe demo.wsf

Console形式:cscript.exe demo.wsf

[当前路径是demo.wsf的根路径]

在命令行下执行cscript 可以查看执行的参数,常用的有:

//Job:xxx : 执行某个作业

//X : 跟踪

跟踪调试

以demo.wsf为例,执行如下命令行

cscript.exe demo.wsf //Job:jsoffice //X

此时可以进入Script Debugger或者VS2008等开发工具中跟踪,初始定位在第一行,然后设置断点、查看变量等,如下图是进入VS2010的一个跟踪情况

clip_image002

相关文章
|
9天前
|
C# Windows
.NET开源免费的Windows快速文件搜索和应用程序启动器
今天大姚给大家分享一款.NET开源(MIT License)、免费、功能强大的Windows快速文件搜索和应用程序启动器:Flow Launcher。
|
1月前
|
Linux Shell Windows
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
通过Linux挂载Windows端NFS服务实现板端Linux传输文件到PC
|
1月前
|
存储 安全 数据安全/隐私保护
Windows部署WebDAV服务并映射到本地盘符实现公网访问本地存储文件
Windows部署WebDAV服务并映射到本地盘符实现公网访问本地存储文件
249 0
|
26天前
|
开发框架 数据安全/隐私保护 开发者
HBuilder开发者必备!Windows上传IPA文件的软件分享
HBuilder开发者必备!Windows上传IPA文件的软件分享
21 1
|
6天前
|
Windows
【Windows】 手写脚本更快编辑hosts文件
【Windows】 手写脚本更快编辑hosts文件
9 0
|
1月前
|
Windows
Windows 命令提示符(CMD)操作(一):文件和目录管理
Windows 命令提示符(CMD)操作(一):文件和目录管理
40 0
|
1月前
|
程序员 Docker Windows
Windows 10系统压缩C盘WSL虚拟磁盘文件
Windows 10系统压缩C盘WSL虚拟磁盘文件
33 1
|
1月前
|
安全 Linux 网络安全
|
2月前
|
Python Windows
为什么在Windows系统直接点击.py文件总是“一闪而过”?
为什么在Windows系统直接点击.py文件总是“一闪而过”?
196 0
|
2月前
|
开发框架 数据安全/隐私保护 开发者
HBuilder 开发者必备!Windows 上传 IPA 文件的软件分享
HBuilder 开发者必备!Windows 上传 IPA 文件的软件分享