Vbscript 获取当前工作目录
如何获取活动运行的vbscript/classic ASP页面的路径?我使用了几个代码段,但都给出了当前的工作目录(C驱动器路径),但我需要获取脚本所在的当前文件路径 我正在尝试在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
.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(…)
文件。