1

我正在使用 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)
4

2 回答 2

1

循环遍历文件夹中的文件,使用正则表达式查找要处理的文件,处理完文件后退出循环:

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
于 2013-04-21T12:09:53.550 回答
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
于 2013-04-21T18:24:51.140 回答