在脚本中包含嵌套文件时的文件路径

时间:2015-03-10 18:06:02

标签: vbscript

我有一个脚本文件,用于打开位于同一目录中的文本文件。我们称之为SubScript。

SubScript.vbs

 Function DoSomething(foo) 
 ...
    Dim Key
        With CreateObject("Scripting.FileSystemObject")
        Key = .OpenTextFile("key.txt", 1).ReadAll
    End With
  ...
  End Function

脚本独立运行时没有问题。但是,我想在另一个脚本文件“MainScript”中使用上面的脚本。 SubScript位于MainScript目录的子文件夹中。

MainScript.vbs

With CreateObject("Scripting.FileSystemObject")
    ExecuteGlobal .OpenTextFile(".\SubDir\SubScript.vbs", 1).ReadAll
End With

当我尝试在SubScript中使用DoSomething函数时,我收到一个找不到文件的错误。我看到发生了什么,下标试图在MainScript目录中找到它不存在的文本文件。

有没有办法在不使用绝对文件路径的情况下确保SubScript从SubDir加载文本文件?

1 个答案:

答案 0 :(得分:1)

在进程的当前目录中解析相对路径。有时您可以使用脚本的文件夹来获得更大的灵活性。但在你的情况下(.ExecuteGlobal),SubScript的当前目录是MainScript的当前目录。

您应该将路径传递给DoSomething(),除非您可以使用硬编码“。\ SubDir \ key.txt”。