我有一个vbscript函数,可以创建并打开一个文本文件。我想将函数的文件句柄返回到代码的主体。不幸的是,我得到的对象不支持此属性或方法错误。
最终,我将设置代码,我将拥有一个调试脚本,该脚本将具有打开,写入,读取和关闭文件的功能。然后,我可以将此脚本导入另一个vbscript文件并将其用于调试目的。但是,首先,我需要让下面的代码工作。
提前谢谢。
以下是代码:
Function OpenFileWrite(sDirectory, sFile)
Dim objFSO 'As FileSystemObject
Dim objTextFile 'As Object
Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8
Set objFSO = CreateObject("Scripting.FileSystemObject")
' Check that the strDirectory folder exists
If objFSO.FolderExists(sDirectory) Then
Set objFolder = objFSO.GetFolder(sDirectory)
Else
Set objFolder = objFSO.CreateFolder(sDirectory)
WScript.Echo "Just created " & sDirectory
End If
If objFSO.FileExists(sDirectory & "\" & sFile) Then
Set objFile = objFSO.GetFile(sDirectory & "\" & sFile)
Else
Set objFile = objFSO.CreateTextFile(sDirectory & "\" & sFile)
Wscript.Echo "Just created " & sDirectory & "\" & sFile
End If
Set objTextFile = objFSO.OpenTextFile(sDirectory & "\" & sFile, ForWriting, True)
OpenFileWrite = objTextFile
End Function
sDirectory = "\"
sFile = "debug.txt"
Set ObjFile = OpenFileWrite(sDirectory, sFile)
答案 0 :(得分:2)
您需要Set
将对象分配给变量或函数的返回值:
OpenFileWrite = objTextFile
==>
Set OpenFileWrite = objTextFile
(在Set OpenFileWrite = objTextFile
中,Set
遵守规则“使用Set来分配对象”; OpenFileWrite =
'实现'规则'分配给函数名称以指定返回值”。)