我有一个脚本文件,用于打开位于同一目录中的文本文件。我们称之为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加载文本文件?
答案 0 :(得分:1)
在进程的当前目录中解析相对路径。有时您可以使用脚本的文件夹来获得更大的灵活性。但在你的情况下(.ExecuteGlobal),SubScript的当前目录是MainScript的当前目录。
您应该将路径传递给DoSomething(),除非您可以使用硬编码“。\ SubDir \ key.txt”。