VBScript(经典ASP):尝试将当前目录的绝对路径输出到浏览器,但得到错误

时间:2011-06-20 22:39:46

标签: vbscript asp-classic

我正在尝试使用Classic ASP在浏览器屏幕上打印当前目录的绝对路径。 (相当于PHP的echo命令)。

我在下面代码的最后一行收到此错误: “Microsoft VBScript运行时错误'800a01a8' 需要的对象:'文档' /Research/ro.asp,第17行“

我尝试了几种不同的方法来打印到屏幕上(如WScript.StdOut.Write),它们也会返回相同的错误。

我怀疑我的错误与它是一个对象这一事实有关,而且对象需要一种不同的方法来打印到屏幕上。

对任何人有任何想法吗?

samplefile.asp =

<%

Dim szCurrentRoot: szCurrentRoot= ""

'Create the File System Ojbect
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

'Get the Absolute Path of the current directory
szCurrentRoot = objFSO.GetParentFolderName(Server.MapPath(Request.ServerVariables("URL")))

'Print to the screen.  The following line is line 17 which causes the error
Document.Write(szCurrentRoot)
%>

经过一些研究后,我找到了问题的答案:

回复于(szCurrentRoot)

这种写入浏览器屏幕的方式是成功的。

3 个答案:

答案 0 :(得分:4)

<%

Dim szCurrentRoot: szCurrentRoot= ""

'Create the File System Ojbect
Set objFSO = Server.CreateObject("Scripting.FileSystemObject")

'Get the Absolute Path of the current directory
szCurrentRoot = objFSO.GetParentFolderName(Server.MapPath(Request.ServerVariables("URL")))

'Print to the screen.
Response.Write szCurrentRoot
%>

Response.Write 是将文本数据发送回客户端的方式。使用<% %>是此方法的快捷方式。

答案 1 :(得分:1)

您无法从ASP打印到屏幕,如果您不在代码块内,则只能使用Response.Write Server.EncodeHTML(szCurrentRoot)或速记<%=Server.EncodeHTML(szCurrentRoot) %>将回复写回浏览器。

答案 2 :(得分:-1)

如果从命令行

运行,则不会隐式定义Yea Document

例如

cscript whatever.vbs

如果您要在IE中运行此脚本,则可以访问“document”

尝试这样做

设置ie = CreateObject(“InternetExplorer.Application”) ie.document.write(szCurrentRoot)