Vbscript 获取当前工作目录

Vbscript 获取当前工作目录,vbscript,asp-classic,Vbscript,Asp Classic,如何获取活动运行的vbscript/classic ASP页面的路径?我使用了几个代码段,但都给出了当前的工作目录(C驱动器路径),但我需要获取脚本所在的当前文件路径 我正在尝试在.VBS文件和.ASP文件中显示此内容 Dim folderName1 folderName1 = "" Dim fso1 Set fso1 = CreateObject("Scripting.FileSystemObject") Dim fullpath fullpath = fso1.GetAbsolutePa

如何获取活动运行的vbscript/classic ASP页面的路径?我使用了几个代码段,但都给出了当前的工作目录(C驱动器路径),但我需要获取脚本所在的当前文件路径

我正在尝试在
.VBS
文件和
.ASP
文件中显示此内容

Dim folderName1
folderName1 = ""

Dim fso1
Set fso1 = CreateObject("Scripting.FileSystemObject")

Dim fullpath
fullpath = fso1.GetAbsolutePathName(folderName1)

response.write("folder spec: " & folderName1)
response.write( "fullpath:    " & fullpath)

上面的代码给出了C路径。

如果您使用的是Windows脚本主机,
WScript.ScriptFullName
返回当前正在执行的脚本的完整路径。您可以截断该字符串以确定文件夹

strFolder = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\"))
如果您有一个
FileSystemObject
(或者不介意创建一个),也可以使用
GetParentFolderName
方法:

Set objFSO = CreateObject("Scripting.FileSystemObject")
strFolder = objFSO.GetParentFolderName(WScript.ScriptFullName)

如果您使用的是Windows脚本主机,
WScript.ScriptFullName
返回当前正在执行的脚本的完整路径。您可以截断该字符串以确定文件夹

strFolder = Left(WScript.ScriptFullName, InStrRev(WScript.ScriptFullName, "\"))
如果您有一个
FileSystemObject
(或者不介意创建一个),也可以使用
GetParentFolderName
方法:

Set objFSO = CreateObject("Scripting.FileSystemObject")
strFolder = objFSO.GetParentFolderName(WScript.ScriptFullName)

正如你在评论中提到的:

假设我正在运行abc.vbs文件。我需要获取存储abc.vbs的完整路径

我们将假设您正在谈论查找存储脚本的路径:

Set fso = CreateObject("Scripting.FileSystemObject") 
wscript.Echo fso.GetParentFolderName(wscript.ScriptFullName) 
您提供的示例在.vbs文件中不起作用-您使用了
response.write
,该指令在
.vbs
文件中无效

Dim folderName1
folderName1 = ""

Dim fso1
Set fso1 = CreateObject("Scripting.FileSystemObject")

Dim fullpath
fullpath = fso1.GetAbsolutePathName(folderName1)

response.write("folder spec: " & folderName1)
response.write( "fullpath:    " & fullpath)
如果您试图在使用vbscript的经典ASP页面中获取正在运行的“脚本”的当前目录,则可以使用:

response.write(Server.MapPath("."))

我希望这能有所帮助。

正如您在评论中提到的:

假设我正在运行abc.vbs文件。我需要获取存储abc.vbs的完整路径

我们将假设您正在谈论查找存储脚本的路径:

Set fso = CreateObject("Scripting.FileSystemObject") 
wscript.Echo fso.GetParentFolderName(wscript.ScriptFullName) 
您提供的示例在.vbs文件中不起作用-您使用了
response.write
,该指令在
.vbs
文件中无效

Dim folderName1
folderName1 = ""

Dim fso1
Set fso1 = CreateObject("Scripting.FileSystemObject")

Dim fullpath
fullpath = fso1.GetAbsolutePathName(folderName1)

response.write("folder spec: " & folderName1)
response.write( "fullpath:    " & fullpath)
如果您试图在使用vbscript的经典ASP页面中获取正在运行的“脚本”的当前目录,则可以使用:

response.write(Server.MapPath("."))

我希望这有帮助。

您可以使用server.variables。用于查看所有server.variables的脚本

<%
dim item
for each item in Request.ServerVariables
  Response.Write(item & "= "&Request.ServerVariables(item) & "<br>")
next
%> 


然后,您可以使用字符串操作(例如“拆分”)来定义文件夹或其他文件。

您可以使用server.variables。用于查看所有server.variables的脚本

<%
dim item
for each item in Request.ServerVariables
  Response.Write(item & "= "&Request.ServerVariables(item) & "<br>")
next
%> 


然后,您可以使用字符串操作(例如“split”)来定义文件夹或其他文件。

不必解析整个ServerVariables,只需执行以下简单的代码行即可。它也不需要WScript

parentFolder = Request.ServerVariables("APPL_PHYSICAL_PATH")

您不必解析整个ServerVariables,只需执行以下简单的代码行即可。它也不需要WScript

parentFolder = Request.ServerVariables("APPL_PHYSICAL_PATH")

嗨-这里不是100%清楚你在问什么。。。。在您的脚本示例中(假设是经典的ASP Vbscript?),Fullpath应该返回当前的工作目录,但是您继续说代码提供了C驱动器路径,但是您需要当前的文件路径。。。?你能不能更新一下,并给出一个更详细的例子,说明你的问题,因为我不明白你遗漏了什么。是否希望输出显示asp/vbs文件所在的位置?假设我正在运行abc.vbs文件。我需要获取其存储abc.vbs文件的完整路径。如果您正在运行abc.vbs-您将不会像在此处编写的那样使用response.write,您将使用wscript.echo-response.write是您将在经典ASP中使用的指令。。。?这会改变你在这里追求的东西。嗨-你在这里问什么还不是100%清楚。。。。在您的脚本示例中(假设是经典的ASP Vbscript?),Fullpath应该返回当前的工作目录,但是您继续说代码提供了C驱动器路径,但是您需要当前的文件路径。。。?你能不能更新一下,并给出一个更详细的例子,说明你的问题,因为我不明白你遗漏了什么。是否希望输出显示asp/vbs文件所在的位置?假设我正在运行abc.vbs文件。我需要获取其存储abc.vbs文件的完整路径。如果您正在运行abc.vbs-您将不会像在此处编写的那样使用response.write,您将使用wscript.echo-response.write是您将在经典ASP中使用的指令。。。?这可能会影响您在此处所追求的内容。它会引发错误Microsoft VBScript运行时错误“800a01a8”所需对象:“fso”您提到了“abc.vbs”-您确定没有运行“abc.asp”?:)我从两边都在测试。同时使用.asp和.vbs是否在.vbs文件中运行时获得800a01a8?我已更新我的答案,以包括在经典asp(vbscript)中实现这一点的方法:response.write(Server.MapPath(“.”)它抛出错误Microsoft vbscript运行时错误“800a01a8”所需对象:“fso”您提到的“abc.vbs”-您确定没有运行“abc.asp”?:)我从两边都在测试。使用.asp和.vbs并在.vbs文件中运行时获得800a01a8?我已更新了答案,以包括在经典asp(vbscript)中实现这一点的方法:response.write(Server.MapPath(“.”)这在include或
服务器上不起作用。Execute(…)
文件。这在include或
服务器上不起作用。Execute(…)
文件。