VBScriptでは「FileSystemObject」を使用することで様々なファイル操作を行えます。
ここでは、テキストファイルの内容を一括で読み込む方法を解説します。
まずはソースコードになります。各行の解説はコードの後に記載しています。
Option Explicit
' 読み込むファイルのパス
Dim targetFile
targetFile = ".\Sample.txt"
' ファイルシステムオブジェクトの作成
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
' ファイルを読み取り専用で読み込み
Dim stream
Set stream = fso.OpenTextFile(targetFile, 1)
' テキストファイルの一括読み込み
MsgBox(stream.ReadAll)
' テキストファイルを閉じる
stream.Close
Set stream = Nothing
' ファイルシステムオブジェクトの破棄
Set fso = Nothing
9行目のファイルシステムオブジェクトの作成は、ファイルシステムオブジェクトを使用する際には必須の記述なので、こういう記述が必要なんだな、程度に覚えておくと良いと思います。
13行目は、読み込む対象のファイルを読み取り専用で開いています。
16行目が今回の一括読み込みの主要な処理となり、「ReadAll」と記述することでファイルの内容をメモリに一括で読み込んでいます。
ここでは、読み込んだ内容をメッセージボックスで表示しています。
下記の緑色背景がメッセージボックスに表示される内容で、
黒背景がコマンドプロンプトで取得したファイル一覧になります。
取得される情報はどちらも同じですが、並び順が異なっています。
VBScript側がソートされていないので、ファイル内容を元に処理を行う場合は、ソートも同時に行う方が想定外の挙動を防げるかもしれません。
C:\workspace\VBScript\dir1\dir2\dir2.txt
C:\workspace\VBScript\dir1\dir1.txt
C:\workspace\VBScript\folder1\folder1.txt
C:\workspace\VBScript\Sample.txt
C:\workspace\VBScript\Test.vbs
C:\workspace\VBScript\Sample.txt
C:\workspace\VBScript\Test.vbs
C:\workspace\VBScript\dir1\dir1.txt
C:\workspace\VBScript\dir1\dir2\dir2.txt
C:\workspace\VBScript\folder1\folder1.txt
ソートに癖がありますが、簡単な記述でファイルの内容を読み込めましたね。
VBScriptでは、似たような記述でファイルの内容を1ずつ読み込めるので、こちらの方が利便性は高そうです。1行ずつ読み込む方法は以下の記事にまとめています。
コメント