There are three types of blogs: useful, interesting/entertaining, and other which is usually the opposite of both. The goal of this blog is to be in bucket #1 and bucket #2. More to come...
A friend recently asked me how to touch every file in a folder and subfolders. Let's say he has an executible called "dosomething.exe" and wants to run that program against every file in the parent folder and subfolders. Here's a quick script to do such a thing. There's not much to the VBScript but I am posting because I know what it is like to be out in the field and need something quickly. While this can be done multiple ways, I wrote this in VBScript because I did not know the client OS version and only had notepad handy at the time. :)
On Error Resume Next ' Ignore errors such as access deniedDim ObjShell, objFSO, objFolder, objStartFolderDim colFiles
Set ObjShell = CreateObject("WScript.Shell")Set objFSO = CreateObject("Scripting.FileSystemObject")Set objFolder = objFSO.GetFolder(objStartFolder)Set colFiles = objFolder.Files
objStartFolder = "C:\jingalls" ' This is the parent directory
For Each objFile in colFilesNext
ShowSubfolders objFSO.GetFolder(objStartFolder)
Sub ShowSubFolders(Folder) For Each Subfolder in Folder.SubFolders Set objFolder = objFSO.GetFolder(Subfolder.Path) Set colFiles = objFolder.Files For Each objFile in colFiles wscript.echo Subfolder.Path & "\" & objFile.Name set objWshScriptExec = objShell.Exec("%COMSPEC% /c c:\utils\dosomething.exe " & Subfolder.Path & "\" & objFile.Name) Set objStdOut = objWshScriptExec.StdOut strOutput = objStdOut.ReadAll WScript.Echo strOutput Next ShowSubFolders Subfolder NextEnd Sub
Set objShell = NothingSet objFSO = Nothingset objFolder = Nothingset objStartFolder = Nothingset colFiles = Nothing