¿Cómo obtiene VBA la salida externa del ejecutor de Shell? ¿O cómo redirigir los resultados de la ejecución de un programa externo a un archivo?
FSO (Filesy System Object) opera archivos. Si desea redirigir, debe ejecutar el script en forma de línea de comando y especificar el archivo al que se redirigirá en la línea de comando.
El método de línea de comando es el siguiente: cscript script name gt; "D:\Program Files\diffcount\myresult.txt"
El método para escribir archivos directamente en el script (FSO):
Solo ejecutando el comando con Exec se puede obtener el flujo de salida y escribirlo en el archivo. Const?ForWriting?=?2
resultfile?=?"D:\Program?Files\diffcount\myresult.txt"
Set?fso?=?CreateObject("Scripting. FileSystemObject")
Set?myfile?=?fso.OpenTextFile(resultfile,?ForWriting,?True)
Set?WshShell?=?WScript.CreateObject("WScript.Shell" )
Set?oExec?=?WshShell.Exec(shell_cmd)
Set?oStdOut?=?oExec.StdOut
Do?Until?oStdOut.AtEndOfStream
miarchivo.WriteLine?oStdOut.ReadLine
Bucle
miarchivo.Close