Vbscript 在循环中打开每个文件
我正在编写一个子程序,需要从目录中的文件中提取文本。例行公事如下。只要目录中只有一个文件,它就可以工作。当有多个文件时,它会告诉我下面的Vbscript 在循环中打开每个文件,vbscript,fso,Vbscript,Fso,我正在编写一个子程序,需要从目录中的文件中提取文本。例行公事如下。只要目录中只有一个文件,它就可以工作。当有多个文件时,它会告诉我下面的Set intFSO=intFSO.OpenTextFile(filePath,1)行 我假设我需要做一些事情来重置下一个文件,但我似乎无法弄清楚它是什么。有什么建议吗 Sub ExtractEDI(folPath) Dim sName, fil Dim intFSO Dim filePath Set intFSO = CreateObject
Set intFSO=intFSO.OpenTextFile(filePath,1)
行
我假设我需要做一些事情来重置下一个文件,但我似乎无法弄清楚它是什么。有什么建议吗
Sub ExtractEDI(folPath)
Dim sName, fil
Dim intFSO
Dim filePath
Set intFSO = CreateObject("Scripting.FileSystemObject")
For Each fil In fso.GetFolder(folPath).Files
filePath = folpath & "\" & fil.Name
Set intFSO = intFSO.OpenTextFile(filePath, 1)
'will process file here
intFSO.Close
Next
Set intFSO = Nothing
End Sub
这个脚本还有更多内容。上面的例程被递归调用,以便遍历子目录。所有这些都很好
如果要在下一次迭代中再次使用文件句柄,请不要用文件句柄替换FileSystemObject
实例。对文件使用不同的变量。并删除整个路径连接/OpenTextFile
shebang。您可以直接从文件
对象打开文件
这就是您所需要的(假设fso
是一个全局FileSystemObject
实例):
如果要在下一次迭代中再次使用文件句柄,请不要用文件句柄替换FileSystemObject
实例。对文件使用不同的变量。并删除整个路径连接/OpenTextFile
shebang。您可以直接从文件
对象打开文件
这就是您所需要的(假设fso
是一个全局FileSystemObject
实例):
这是有道理的。非常感谢。@lankymart我将第一个代码段放在一个块引号中,表示它是从问题中引用的(当然减去“下划线”),这很有意义。非常感谢。@lankymart我将第一个代码段放在一个块引号中,表示它是从问题中引用的(当然减去“下划线”)。
Set intFSO = intFSO.OpenTextFile(filePath, 1)
' ^^^^^^ ^^^^^^
Sub ExtractEDI(folPath)
For Each fil In fso.GetFolder(folPath).Files
Set f = fil.OpenAsTextStream
'will process file here
f.Close
Next
End Sub