VBScript宏getParentFolder名称

VBScript宏getParentFolder名称,vbscript,Vbscript,我正在尝试创建一个vbscript宏,它将获取存储宏的文件夹位置,并将输出文件创建到同一文件夹中。我使用下面的代码,但它没有得到正确的位置 Set obj1FSO = CreateObject("Scripting.FileSystemObject") folderLoc = obj1FSO.GetParentFolderName("\Cubes_Macro_V5.zmc") 然后,它将使用folderLoc变量并将输出文件名附加到该变量,以便在存储宏的同一文件夹中创建输出文件 Set re

我正在尝试创建一个vbscript宏,它将获取存储宏的文件夹位置,并将输出文件创建到同一文件夹中。我使用下面的代码,但它没有得到正确的位置

Set obj1FSO = CreateObject("Scripting.FileSystemObject")
folderLoc = obj1FSO.GetParentFolderName("\Cubes_Macro_V5.zmc") 
然后,它将使用folderLoc变量并将输出文件名附加到该变量,以便在存储宏的同一文件夹中创建输出文件

Set repFso = CreateObject("Scripting.FileSystemObject")
Set repFile = repFso.CreateTextFile(folderLoc & "RCHT_OPTION4_REPORT.txt", True)
宏存储在D:\驱动器的文件夹中,但当我运行上述代码段时,它会得到桌面的位置。

这不是该方法的工作方式-它从提供的字符串中提取“父级”

   Option Explicit
   Dim fso,GetTheParent

   Set fso = CreateObject("Scripting.FileSystemObject")
   GetTheParent = fso.GetParentFolderName("C:\Windows")
   wscript.echo "Attempt 1:" & "'" & GetTheParent & "'"

   GetTheParent = fso.GetParentFolderName("\Windows")
   wscript.echo "Attempt 2:" & "'" & GetTheParent & "'"

   GetTheParent = fso.GetParentFolderName("Windows")
   wscript.echo "Attempt 3:" & "'" & GetTheParent & "'"

   GetTheParent = fso.GetParentFolderName("C:\WINDOWS\system32")
   wscript.echo "Attempt 4:" & "'" & GetTheParent & "'"

   GetTheParent = fso.GetParentFolderName("\WINDOWS\system32")
   wscript.echo "Attempt 5:" & "'" & GetTheParent & "'"
结果:

Attempt 1:'C:\'
Attempt 2:''
Attempt 3:''
Attempt 4:'C:\WINDOWS'
Attempt 5:'\WINDOWS'

当前目录(“启动进程时您所在的位置”)与脚本的目录之间存在差异:

>> WScript.Echo 0, goFS.GetAbsolutePathName(".\")
>> WScript.Echo 1, goWS.CurrentDirectory
>> WScript.Echo 2, goFS.GetParentFolderName(WScript.ScriptFullName)
>>
0 C:\Documents and Settings\eh
1 C:\Documents and Settings\eh
2 M:\bin
(我从我的主目录调用了驻留在m:\bin中的REPL/Interactive VBS shell)

我不知道“Cubes_Macro_V5.zmc”
是否是一个VBScript文件(带有一个特殊的扩展名,由您通过w | cscript.exe使用的任何代理加载),但请检查WScript.ScriptFullName是否具有预期的内容并应用.GetParentFolderName

如果失败,您需要确定代理用于宏的文件夹,并将该目录提供给.BuildPath

再三考虑:

伏都教,但很容易测试:是吗

WScript.Echo 0, goFS.GetAbsolutePathName(".\Cubes_Macro_V5.zmc")
提供所需的结果?

可能重复的