Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
For the sake of this post, let's assume that you have a directory that contains some empty folders you want to get rid of. How the empty folders got there isn't important; all that matters is that you have some and you want to get rid of them.
A few years ago, I created the following script (starting from a sample I found in the Script Center on TechNet) to recursively enumerate a folder structure, identify any empty folders, and subsequently delete them.
Option Explicit
If (WScript.Arguments.Count <> 1) Then
WScript.Echo("Usage: cscript DeleteEmptyFolders.vbs {path}")
WScript.Quit(1)
End If
Dim strPath
strPath = WScript.Arguments(0)
Dim fso
Set fso = CreateObject("Scripting.FileSystemObject")
Dim objFolder
Set objFolder = fso.GetFolder(strPath)
DeleteEmptyFolders objFolder
Sub DeleteEmptyFolders(folder)
Dim subfolder
For Each subfolder in folder.SubFolders
DeleteEmptyFolders subfolder
Next
If folder.SubFolders.Count = 0 And folder.Files.Count = 0 Then
WScript.Echo folder.Path & " is empty"
fso.DeleteFolder folder.Path
End If
End Sub
As you can see, there's really nothing complex here. Nevertheless I still find it to be a very useful script from time to time, so I thought I should share it. I used it this morning and it occurred to me that I should throw it up on the blog.
Just be sure to run it with CScript -- and not the default WScript -- or you'll find the WScript.Echo messages rather frustrating.