我正在使用VB脚本从文本文件中读取数据。它工作正常。
我的挑战是文件名每天都会更改,并附加日期。该文件是一个文本文件,以.TXT扩展名结尾。因此,每次我必须将文件重命名为我在脚本中使用的固定名称。
有没有办法从当前文件夹中读取文件,扩展名为.TXT,无论文件名是什么。在下面的代码中,我正在读取SNMP.TXT文件,但文件名可能是一天的SNMP_20130415_xxxx.TXT和第二天的SNMP_10130416_xxxx.TXT,依此类推。
Const ForReading = 1
Const ForWriting = 2
Const ForAppending = 8
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objInpoutFile = objFSO.OpenTextFile("D:\scripts\vb\FileHandleScript\SNMP.TXT",1)
Set objOutputFile = objFSO.OpenTextFile("D:\scripts\vb\FileHandleScript\snmp.csv",2,True)
答案 0 :(得分:1)
循环文件夹中的文件,使用RegExp查找要处理的文件,在处理完文件后退出循环:
Dim reFiNa : Set reFiNa = New RegExp
reFiNa.IgnoreCase = True
reFiNa.Pattern = "^snmp_.+\.txt$" ' starting with snmp_, ending with .txt
For Each oFile in objFSO.GetFolder("D:\scripts\vb\FileHandleScript").Files
If reFiNa.Test(oFile.Name) Then
... process file ...
Exit For
End If
Next
答案 1 :(得分:1)
没有正则表达式的替代方案:
For Each f in objFSO.GetFolder("D:\scripts\vb\FileHandleScript").Files
name = LCase(f.Name)
If Left(name, 5) = "snmp_" And objFSO.GetExtensionName(name) = "txt" Then
'do stuff
End If
Next