Manipulating Files from Scripts

One of the myths surrounding the Windows Script Host, and VBScript in particular, is that there’s no provision for accessing the filesystem (copying, deleting, and writing to files). This assumption is based on the fact that VBScript, when used in web pages, is not permitted to access the filesystem for security reasons.

The following routines rely on the FileSystemObject object, providing most necessary file operations. The names I’ve chosen for these functions and subroutines are based on what they act upon and what they’re used for; for example, the FolderCopy subroutine is used to copy a folder, and the FileCopy subroutine is used to copy a file.

The following two functions return properties of drives—whether a specific drive letter exists and how much free space a specified drive has, respectively:

Function DriveExists(DriveLetter)
  Set FileObject = CreateObject("Scripting.FileSystemObject")
  DriveExists = FileObject.DriveExists(DriveLetter)
End Function
  
Function DriveFreeSpace(DriveLetter)
  If Left(DriveLetter,1) <> ":" Then DriveLetter = DriveLetter & ":"
  Set FileObject = CreateObject("Scripting.FileSystemObject")
  Set DriveHandle = _ 
                FileObject.GetDrive(FileObject.GetDriveName(DriveLetter))
  DriveFreeSpace = DriveHandle.FreeSpace
End Function

These next seven subroutines and functions are used to manipulate folders. The functions are used to retrieve information about a folder, and the subroutines are used to perform actions on a folder. The ...

Get Windows Me Annoyances now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.