从vbscript中的函数返回File句柄

时间:2013-04-11 18:07:59

标签: file function vbscript procedure filesystemobject

我有一个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)

1 个答案:

答案 0 :(得分:2)

您需要Set对象分配给变量函数的返回值:

OpenFileWrite = objTextFile
==>
Set OpenFileWrite = objTextFile

(在Set OpenFileWrite = objTextFile中,Set遵守规则“使用Set来分配对象”; OpenFileWrite ='实现'规则'分配给函数名称以指定返回值”。)