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

摘要:
为了简化脚本,可以将脚本分成多个部分。使用此方法,您将创建一个Wsf文件,并将其用作执行的起点。Windows脚本文件是包含可扩展标记语言代码的文本文档。wsf文件支持Include语句的实现,以将函数从VBScript或JScript文件合并到Windows脚本宿主项目中http://t.zoukankan.com/FSO.JS“/˃'获取驱动器C的可用空间。s=GetFreeSpaceWScript.Echos多个引擎对每个文件使用多个脚本语言。subPerlHello{my$str=@_[0];$WScript-˃Echo;}WScript。Echo“Hello from VBScript”PerlHello“您好from PERLScript”类型库将常量添加到代码DimMyVarSetMyVar=CreateObjectCurrentreturn=MyVar.MyMMethodIfCurrentreturn=FalsethenWScript。EchoMyErrorEndIf工具使用任何XML编辑器编辑文件。本例中的“MyFirstJob”是MyScripts中包含的作业名称。wsf文件。

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

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

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

.wsf 文件支持

实现

Include 语句

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

<job id="IncludeExample">

<script language="JScript" src="http://t.zoukankan.com/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

免责声明:文章转载自《windows脚本 使用 Windows 脚本文件 (.wsf) 2/4》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Oracle wallet 配置 说明[转载]在IE8下动易SiteWeaver后台编辑器按钮没有反应的解决方案下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

JS/jQuery刷新iframe的方法

一、js 页面刷新1.  reload 方法,该方法强迫浏览器刷新当前整个页面。  语法:location.reload([bForceGet])  参数: bForceGet, 可选参数, 默认为 false,从客户端缓存里取当前页。true, 则以 GET 方式,从服务端取最新的页面, 相当于客户端点击 F5("刷新") <script lang...

shell脚本调试之工具——bashdb

bash是Unix/Linux操作系统最常用的shell之一,它非常灵活,和awk、c++配合起来异常强大 以下使用一个测试脚本来说明使用bash调试的方法 test.sh [plain]view plaincopy #!/bin/bash      echo "----------------begin-----------------"    ...

npm script 自动打开浏览器 All In One

npm script 自动打开浏览器 All In One npm script 自动打开浏览器,bin open / node.js 兼容 mac/pc API It uses the command open on macOS, start on Windows and xdg-open on other platforms. source-code...

Linux链接脚本学习--lds(转)

Linux链接脚本学习--lds 一、概论 ld: GNU的链接器. 用来把一定量的目标文件跟档案文件链接在一起,并重新定位它们的数据,链接符号引用. 一般编译一个程序时,最后一步就是运行ld进行链接 每一个链接都被一个链接脚本所控制,这个脚本是用链接命令语言书写的. 二、链接脚本 链接脚本的一个主要目的是描述输入文件中的各个段(数据段,代码段,堆,...

跨域问题出现原因和解决方案

一、出现原因 跨域是指a页面想获取b页面资源,如果a、b页面的协议、域名、端口、子域名不同,或是a页面为ip地址,b页面为域名地址,所进行的访问行动都是跨域的,而浏览器为了安全问题一般都限制了跨域访问,也就是不允许跨域请求资源。 例如: URL 说明 是否跨域 http://www.a.com/lab/a.jshttp://www.a.com/s...

ansible用普通用户执行root权限的命令 + script模块

0.禁止root登陆1.用sudo的用户登陆2.执行root的权限 3.cat /etc/ansible/hosts # Ex 2: A collection of hosts belonging to the 'webservers' group [test] 10.0.0.3 ansible_ssh_user="dev" ansible_ssh_pa...