2014-02-10 175 views
0

我已經查看了所有的重定向/導出命令行文本文件的答案,但沒有在這種情況下工作。我正在測試我們的軟件,並需要使用多個XML文件運行應用程序。我已經編寫了VBScript來針對應用程序在文件夾中運行所有XML,但我需要將命令窗口中的所有內容都捕獲到文本文件(run.log)中。VBScript記錄命令行輸出到文本(日誌)文件

這裏是我拼湊起來:

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 

回答

1

你可以修改此行..

objShell.Run str 

..to這樣的事情..

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

這會將C:\ Program Files \ ICEsdk600022 \ bin \ FineEyeProcessExe.exe的輸出轉儲到log.txt

+0

我一直在試圖使用這個,實際上%comspec%沒有成功。你指出的是爲了正確定義工作目錄以及擴大使用和允許我更深入地記錄日誌。 – BKC

相關問題