BKC
BKC

Reputation: 3

VBScript record command line output to text (log) file

I've looked over all the redirect/export command line to text file answers, but none work in this case. I am testing our software and need to run the application using several XML files. I've written the VBScript to run all XML in a folder against the application, but I need to capture everything in the command window to a text file (run.log).

Here is what I have cobbled together:

Option Explicit

Dim FSO, FLD, FIL, str, Expath, strFolder, objShell, objFSO, strFile, objFile

    set objShell = WScript.CreateObject ("WScript.Shell")
    Set FSO = CreateObject("Scripting.FileSystemObject")

'defines values 
    strFile = "Run.log"
    strFolder = "C:\SDK Testing PDFL 10\XML\"
    Expath = "C:\Program Files\ICEsdk600022\bin\FineEyeProcessExe.exe"
    objShell.CurrentDirectory = "C:\SDK Testing PDFL 10"

'defines the directory where the XML resides
    set FLD = FSO.GetFolder(strFolder)

'defines loop parameters
    For Each Fil In FLD.Files

'searches for XML files within loop
        If UCase(FSO.GetExtensionName(Fil.name)) = "XML" Then

'builds commandline
            str = chr(34) & Expath & chr(34) & chr(32) & chr(34) & strFolder & Fil.Name & chr(34)

'writes string to log           
        set objFSO = CreateObject("Scripting.FileSystemObject")
        set objFile = objFSO.OpenTextFile(strFolder & strFile, 8, True)
        objFile.WriteLine(str)
        objFile.Close

'runs command
            objShell.Run str

'shows string           
            MsgBox str

'writes output to log           
            'set objFSO = CreateObject("Scripting.FileSystemObject")
            'set objFile = objFSO.OpenTextFile(strFolder & strFile, 8, True)
            'objFile.WriteLine()
            'objFile.Close
        End If
    Next

Upvotes: 0

Views: 10558

Answers (1)

JustSomeQuickGuy
JustSomeQuickGuy

Reputation: 943

You could modify this line..

objShell.Run str

..to something like this..

objShell.Run "cmd /c " & str & " > log.txt"

That will dump the output of C:\Program Files\ICEsdk600022\bin\FineEyeProcessExe.exe to log.txt

Upvotes: 1

Related Questions