首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在VBScript中BlueZone下获取工作目录

在VBScript中BlueZone下获取工作目录
EN

Stack Overflow用户
提问于 2016-01-06 12:11:51
回答 2查看 2.3K关注 0票数 1

我目前正在开发许多VBScript脚本,用于BlueZone终端模拟器。其中许多文件需要访问与脚本本身存储在相同位置的外部数据文件。在我自己的计算机上,我已经将完整的路径名硬编码到脚本中,它们工作得很好,但是我现在正试图通过一个私有的Git存储库在办公室重新分发这些脚本,并且遇到了一个问题。

显然,由于文件存储在不同的计算机上,包括共享驱动器,硬编码目录名不再工作,所以我需要一种方法来读取脚本存储的目录的名称。我找到的所有建议都说,WScript.ScriptFullName命令会给我这个建议。不幸的是,由于这些脚本是通过BlueZone运行的,我实际上无法访问该对象,但情况有点混乱。

例如,下面的代码行似乎像预期的那样工作:

代码语言:javascript
复制
Dim myObject : Set myObject = CreateObject("WScript.Network")

这一点也是如此:

代码语言:javascript
复制
Dim myObject : Set myObject = CreateObject("WScript.Shell")

但这个不是:

代码语言:javascript
复制
MsgBox WScript.Name

相反,我得到了如下错误消息:

BlueZone错误消息

下面一行的错误消息略有不同:

代码语言:javascript
复制
Dim myObject : Set myObject = CreateObject("WScript")

因此,我似乎可以访问WScript的子对象,但不能访问对象本身,这没有多大意义。BlueZone环境似乎使用自己的自动化对象作为WScript对象的替代品,但是文档中没有任何关于访问BlueZone本身下配置的脚本目录的内容。

另一次尝试是以下代码:

代码语言:javascript
复制
Dim myObject : Set myObject = CreateObject("Scripting.FileSystemObject")
Dim WD : WD = myObject.GetAbsolutePathName (".")

但这只会给出BlueZone本身的目录,而不是脚本目录。除了对每个脚本的每个单独副本进行硬编码(这意味着不能使用中央存储库)之外,我没有看到任何其他方法来解决这个问题。

有什么想法吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-08 09:53:31

解决了!

经过一番研究,BlueZone支持终于在BlueZone主机自动化对象中找到了一个无文档的ScriptFolder()方法。

所以密码:

代码语言:javascript
复制
Set bzhao = CreateObject("BZWhll.WhllObj")
bzhao.Connect ""
MsgBox bzhao.ScriptFolder

在功能上与行类似:

代码语言:javascript
复制
MsgBox WScript.ScriptFullName

我不确定这两种方法是否完全等价,但就我的目的而言,它已经足够了。

票数 2
EN

Stack Overflow用户

发布于 2016-01-06 14:06:47

您的脚本主机不提供WScript对象(它与WScript.Shell COM对象无关)。cscript.exewscript.exe提供了这个对象,其他脚本主机,比如mshta.exe (显然是BlueZone)没有提供这个对象。

除非Rocket为您提供了获得脚本路径的替代方法,否则我看到的唯一解决办法是启动每个脚本,并将工作目录设置为包含脚本的目录。这样您就可以获得这样的脚本路径:

代码语言:javascript
复制
Set fso = CreateObject("Scripting.FileSystemObject")
cwd = fso.GetAbsolutePathName(".")

或者像这样:

代码语言:javascript
复制
Set sh = CreateObject("WScript.Shell")
cwd = sh.CurrentDirectory
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34632864

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档