我正在尝试编写 WSH 登录脚本。全公司的管理员需要能够自定义脚本的执行,并针对特定位置和用户执行其他脚本。为了让他们的工作更轻松,我想提供一个 API,管理员可以在他们的脚本中访问。如果我使用 JScript 编写 API,是否可以通过 VBScript 初始化我定义的对象?例如,考虑以下代码:
<!-- The WSF logon script file -->
<package>
<job>
<script language="JScript">
// A demonstration function
function OverNineThousand() {
return 9001;
}
// A demonstration "class"
function WorkstationClass() {
var os = "Windows XP";
this.getOperatingSystem = function() {
return os;
}
}
</script>
<script language="VBScript">
Dim bigNumber, workstation
'// This assignment works properly.
bigNumber = OverNineThousand()
'// This assignment causes an error. Am I doing it wrong?
Set workstation = New WorkstationClass()
'// Execution never gets this far
WScript.Echo workstation.getOperatingSystem()
</script>
</job>
</package>
有什么办法可以完成我想做的事情吗?
VBScript 和 JScript 在如何初始化对象方面似乎存在分歧。然而,一旦对象被初始化,它就会被两种语言识别。为了解决这个问题,我必须在 JScript 中创建对象,然后将其返回给 VBScript 调用者,如下所示。
<package>
<job>
<script language="JScript">
// A demonstration "class"
function WorkstationClass() {
var os = "Windows XP";
this.getOperatingSystem = function() {
return os;
}
}
function CreateWorkstation() {
return new WorkstationClass();
}
</script>
<script language="VBScript">
Dim workstation
'// This assignment causes an error.
'// Set workstation = New WorkstationClass()
'// This works!
Set workstation = CreateWorkstation()
'// Prints "Windows XP"
WScript.Echo workstation.getOperatingSystem()
</script>
</job>
</package>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)