2012-04-12 9 views
0

Ich arbeite an einem VBScript, um Ressourcendateien mit ResGen.exe zu generieren und muss die Fehlermeldung von ResGen sammeln und in eine Datei schreiben, habe den Teil der Datei zu steuern (ist nicht vorhanden zeigen im Skript hier, aber ich weiß, wie es geht)VBscript Protokollantworten von ResGen.exe

'' Folder that contains the files 
folderpath = "C:\Users\Administrator\Desktop\Author\author\" 
'Destination folder from generated files 
destfolder = "C:\Users\Administrator\Desktop\Author\author\" 
'Folder contains the text file with list of files names 
listfolder = "C:\Users\Administrator\Desktop\Author\" 
listfile = listfolder + "list.txt" 
logfile = listfolder + "log.txt" 

resgen = "ResGen.exe /compile" 

Set objShell = CreateObject("WScript.Shell") 

Const ForReading = 1 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Wscript.echo listfile 
Set objFile = objFSO.OpenTextFile(listfile, ForReading) 
Wscript.echo "Reading file" 
Do While objFile.AtEndOfStream = False 
    strLine = objFile.ReadLine 
    cmdexec = Chr(34) + folderpath + strLine + "resx" + Chr(34) + " " + Chr(34) + destfolder + strLine + "resources" + Chr(34) 
    execommand = resgen + " " + cmdexec 
    objShell.Run execommand,1,TRUE 
Loop 
objFSO.Close 

nach objShell.Run Linie, was muss ich die Antwort dieses Befehls speichern setzen? Ich habe versucht, ">>" C: \ log.txt "" nach dem Befehl hinzuzufügen, aber mit diesem die Ressourcen-Dateien werden nicht generiert, speichern Sie nur die Antwort in der TXT-Datei.

Ich hoffe, ich habe es richtig erklärt.

Vielen Dank im Voraus!

Antwort

0

Sie können die „Exec“ Methode verwenden, um die WshScriptExec-Objekt zu erhalten, und verwenden Sie es StdOut die Antwort des Befehls zu erhalten, wie unten gezeigt:

'' Folder that contains the files 
folderpath = "C:\Users\Administrator\Desktop\Author\author\" 
'Destination folder from generated files 
destfolder = "C:\Users\Administrator\Desktop\Author\author\" 
'Folder contains the text file with list of files names 
listfolder = "C:\Users\Administrator\Desktop\Author\" 
listfile = listfolder + "list.txt" 
logfile = listfolder + "log.txt" 

resgen = "ResGen.exe /compile" 

Set objShell = CreateObject("WScript.Shell") 

Const ForReading = 1 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Wscript.echo listfile 
Set objFile = objFSO.OpenTextFile(listfile, ForReading) 
Wscript.echo "Reading file" 
Do While objFile.AtEndOfStream = False 
    strLine = objFile.ReadLine 
    cmdexec = Chr(34) + folderpath + strLine + "resx" + Chr(34) + " " + Chr(34) + destfolder + strLine + "resources" + Chr(34) 
    execommand = resgen + " " + cmdexec 
    '*************************************** 
    Set oExec = objShell.Exec(execommand) 
    Do While oExec.Status = 0 
     WScript.Sleep 1000 
    Loop 
    WScript.Echo oExec.StdOut.ReadLine 
    '*************************************** 
Loop 
objFSO.Close