Dump and Load Automation

I've been looking for a way to run the table dump so that it can be run from a batch file non-interactively. I've called into support a few times but never got anywhere with them. After doing some searching on the internet, I've managed to come up with the following code:

/*
Command Line
C:\> mbpro G:\DbOrig\mfgsys -1 -p J:\Epicor\OpenEdge\DumpLoadKit8\AlfeDump.p
*/

DEFINE VARIABLE cmd AS CHARACTER NO-UNDO.
FOR EACH mfgsys._file WHERE _File-Number>0 AND _dump-name<>"" AND LENGTH(_dump-name)>2 NO-LOCK:
cmd = "G:\DbDump\Data2\" + _Dump-name + ".p".
OUTPUT TO VALUE(cmd).
PUT UNFORMATTED "DEFINE VARIABLE len AS INTEGER NO-UNDO INITIAL 0." SKIP.
PUT UNFORMATTED "DEFINE VARIABLE ctr AS INTEGER NO-UNDO INITIAL 0." SKIP.
PUT UNFORMATTED "OUTPUT TO G:\DbDump\Data2\" + _dump-name + ".d." SKIP.
PUT UNFORMATTED "FOR EACH " _file-name " NO-LOCK:" SKIP.
PUT UNFORMATTED "ctr = ctr + 1." SKIP.
PUT UNFORMATTED "EXPORT " _file-name "." SKIP.
PUT UNFORMATTED "END." SKIP.
PUT UNFORMATTED "PUT UNFORMATTED '.' SKIP." SKIP.
PUT UNFORMATTED "len = SEEK(OUTPUT)." SKIP.
PUT UNFORMATTED "PUT UNFORMATTED 'PSC' SKIP." SKIP.
PUT UNFORMATTED "PUT UNFORMATTED 'filename=" + _file-name + "' SKIP." SKIP.
PUT UNFORMATTED "PUT UNFORMATTED 'records=' STRING(ctr,'9999999999999' ) SKIP." SKIP.
PUT UNFORMATTED "PUT UNFORMATTED 'ldbname=mfgsys' SKIP." SKIP.
PUT UNFORMATTED "PUT UNFORMATTED 'timestamp=2011/11/11-11:11:11' SKIP." SKIP.
PUT UNFORMATTED "PUT UNFORMATTED 'numformat=44,46' SKIP." SKIP.
PUT UNFORMATTED "PUT UNFORMATTED 'dateformat=mdy-1950' SKIP." SKIP.
PUT UNFORMATTED "PUT UNFORMATTED 'map=NO-MAP' SKIP." SKIP.
PUT UNFORMATTED "PUT UNFORMATTED 'cpstream=ISO8859-1' SKIP." SKIP.
PUT UNFORMATTED "PUT UNFORMATTED '.' SKIP." SKIP.
PUT UNFORMATTED "PUT UNFORMATTED STRING(len,'9999999999') SKIP." SKIP.
PUT UNFORMATTED "OUTPUT CLOSE." SKIP.
PUT UNFORMATTED "RETURN." SKIP.
OUTPUT CLOSE.
RUN VALUE(CMD).
DOS SILENT VALUE('DEL "' + cmd + '"').
END.
QUIT.
RETURN.

When the corresponding dump files are compared, ignoring the trailer information at the end of the files, the files are identical. The only difference I can detect is that the timestamp line is different, for obvious reasons, however, this code runs in approximately 1/5 the time that the dumptables.r code does. Does anyone know why this is? What does Epicor's code do that mine doesn't?