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

フォルダー内のファイルをループし、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
于 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 に答える