TechWhirl (TECHWR-L) is a resource for technical writing and technical communications professionals of all experience levels and in all industries to share their experiences and acquire information.
For two decades, technical communicators have turned to TechWhirl to ask and answer questions about the always-changing world of technical communications, such as tools, skills, career paths, methodologies, and emerging industries. The TechWhirl Archives and magazine, created for, by and about technical writers, offer a wealth of knowledge to everyone with an interest in any aspect of technical communications.
Subject:Re: Looking for a dos command From:Geoff Lane <geoff -at- gjctech -dot- co -dot- uk> To:TECHWR-L <techwr-l -at- lists -dot- techwr-l -dot- com> Date:Tue, 15 Aug 2006 22:16:54 +0100
On Tuesday, August 15, 2006, John Posada wrote;
> yeah, I have software that already does that. However, two reasons
> that wouldn't work here...1) it has to be something that each of the
> 10 writers already have and 2) it gets compared to a CD that we don't
> get early enough to be of use. The file list is from a set of
> directories where we drop our final files. The file list is then used
> by Release Engineering as soon as the gold CD is cut to verify that
> the build process went out and got the files. By the time we get the
> CD, it's too late.
OK, I assume that they all have Windows Scripting Host (wsh), which
would cover point 1. I note from an earlier post that you need to
specify the directory to be tree-walked and the dump file - so I've
made a couple of mods to allow you to pass these via the command line.
Here's the result:
Sub ParseFolder(objFolder, iLevel)
Dim objFile, strPath, strLine
strPath = objFolder.Path
bFound = False
For Each objFile In objFolder.Files
If INCLUDEPATH Then
strLine = strPath & "\"
strLine = ""
strLine = strLine & objFile.Name & Chr(9) & objFile.Size
If Not bFound Then
For Each objSubFolder In objFolder.SubFolders
ParseFolder objSubFolder, iLevel + 1
'-----------------[ MAIN ]---------------------
Dim fso, objSubFolders, objFolder, fTarget, strTarget, strRootFolder
If WScript.Arguments.Named.Exists("dir") Then
strRootFolder = WScript.Arguments.Named("dir")
strRootFolder = ROOTFOLDER
If WScript.Arguments.Named.Exists("listfile") Then
strTarget = WScript.Arguments.Named("listfile")
strTarget = LISTFILE
Set fso = CreateObject("Scripting.FileSystemObject")
Set fTarget = fso.OpenTextFile(strTarget, 2, True)
Set objFolder = fso.GetFolder(strRootFolder)
ParseFolder objFolder, 0
Set fTarget = Nothing
Set objFolder = Nothing
Set fso = Nothing
Again, save everything between the cut marks as (say) listfiles.vbs
and then call with:
wscript listfiles.vbs /dir:<dir to walk> /listfile:<dump file>
Where <dir to walk> is the directory you want to scan, and
<dump file> is the tab-delimited file for the result. The script
should create this file if it doesn't exist and Excel should readily
import it if you give it a .txt extension.