Reading Text File
|
Checking the Size of a File Before Reading It
Demonstration script that uses the FileSystemObject to ensure that a text file is not empty before attempting to read it. Script must be run on the local computer.
Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.GetFile("C:\Windows\Netlogon.log") If objFile.Size > 0 Then Set objReadFile = objFSO.OpenTextFile("C:\Windows\Netlogon.log", 1) strContents = objReadFile.ReadAll Wscript.Echo strContents objReadFile.Close Else Wscript.Echo "The file is empty." End If
Creating and Naming a Text File
Demonstration script that uses the FileSystemObject’s GetTempName method to generate a file name, and then creates a file by that name.
Set objFSO = CreateObject("Scripting.FileSystemObject") strPath = "C:\FSO" strFileName = objFSO.GetTempName strFullName = objFSO.BuildPath(strPath, strFileName) Set objFile = objFSO.CreateTextFile(strFullName) objFile.Close objFSO.DeleteFile(strFullName)
Creating a Text File
Demonstration script that creates a new, empty text file. Script must be run on the local computer.
Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.CreateTextFile("C:\FSO\ScriptLog.txt")
Generating a File Name
Demonstration script that uses the FileSystemObject’s GetTempName method to generate random file names. Script must be run on the local computer.
Set objFSO = CreateObject("Scripting.FileSystemObject") For i = 1 to 10 strTempFile = objFSO.GetTempName Wscript.Echo strTempFile Next
Reading a Text File Character by Character
Demonstration script that uses the FileSystemObject to read a text file character-by-character, and individually echo those characters to the screen. Script must be run on the local computer.
Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("C:\FSO\New Text Document.txt", 1) Do Until objFile.AtEndOfStream strCharacters = objFile.Read(1) Wscript.Echo strCharacters Loop
Reading a Text File into an Array
Demonstration script that uses the VBScript Split command to read a line from a commas-separated values file, and then place the individual items in that line into an array.
Const ForReading = 1 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFSO.OpenTextFile _ ("c:\scripts\servers and services.txt", ForReading) Do Until objTextFile.AtEndOfStream strNextLine = objTextFile.Readline arrServiceList = Split(strNextLine , ",") Wscript.Echo "Server name: " & arrServiceList(0) For i = 1 to Ubound(arrServiceList) Wscript.Echo "Service: " & arrServiceList(i) Next Loop
Reading a Text File from the Bottom Up
Demonstration script that uses the FileSystemObject to read a text file, and then to echo the text file in inverse order (that is, beginning with the last line in the text file and ending with the first line).
Dim arrFileLines() i = 0 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objFile = objFSO.OpenTextFile("C:\FSO\ScriptLog.txt", 1) Do Until objFile.AtEndOfStream Redim Preserve arrFileLines(i) arrFileLines(i) = objFile.ReadLine i = i + 1 Loop objFile.Close For l = Ubound(arrFileLines) to LBound(arrFileLines) Step -1 Wscript.Echo arrFileLines(l) Next
Writing Data to a Text File
Demonstration script that retrieves the status for all the services installed on a computer, and then saves the service name and status to a text file.
Const ForAppending = 8 Set objFSO = CreateObject("Scripting.FileSystemObject") Set objTextFile = objFSO.OpenTextFile _ ("c:\scripts\service_status.txt", ForAppending, True) Set colServices = GetObject("winmgmts:").ExecQuery _ ("Select * from Win32_Service") For Each objService in colServices objTextFile.WriteLine(objService.DisplayName & vbTab & _ objService.State) Next objTextFile.Close