当WScript不可用时获取VBScript文件的完整路径

当WScript不可用时获取VBScript文件的完整路径,vbscript,Vbscript,我想获得我正在执行的脚本文件的完整路径。通过快速的谷歌搜索,我发现WScript.ScriptFullName可以解决这个问题。问题是我在Windows脚本主机(我正在使用)之外执行此脚本,因此如果我尝试使用该代码,则会出现错误: 变量未定义:“wscript” 如果无法使用WScript,如何获取当前脚本文件的完整路径?您不能退出,用cscript启动一个小脚本,并通过环境变量将值传递给parentscript吗?由于我没有或没有使用ScriptUnit,因此无法对此进行测试。 很明显,如果您

我想获得我正在执行的脚本文件的完整路径。通过快速的谷歌搜索,我发现
WScript.ScriptFullName
可以解决这个问题。问题是我在Windows脚本主机(我正在使用)之外执行此脚本,因此如果我尝试使用该代码,则会出现错误:

变量未定义:“wscript”


如果无法使用WScript,如何获取当前脚本文件的完整路径?

您不能退出,用cscript启动一个小脚本,并通过环境变量将值传递给parentscript吗?由于我没有或没有使用ScriptUnit,因此无法对此进行测试。 很明显,如果您没有Wscript,但是ScriptUnit有一个类似于读取环境变量的功能,那么下面的方法就行不通了

Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run "CScript.exe " & """" & ScriptName & """"  'this would set your environmentvar scriptpath
Set objProcessEnv = WshShell.Environment("Process") 
path = objProcessEnv("scriptpath")

或者从批处理或其他脚本启动脚本,在文本文件中记录路径,并在主脚本中读取该文件的内容。

ScriptUnit的GUI显示,其XML日志包含测试代码的完整文件规范;因此,我不理解您需要一个等效的WScript.ScriptFullName。在AFAICS中,ScriptUnit提供了两个COM对象—Assert和ScriptUnit;所有这些都不会公开“获取当前文件规范”属性或方法,但可以添加这样的功能(如果确实值得这样做)。如果无法做到这一点,您是否愿意接受当前工作文件夹<代码>CreateObject(“Scripting.FileSystemObject”).GetAbsolutePathName(“.”)