I don't get what you mean with run by so fast I can't read them you mean you can't read them in the GUI or that the file is not in the file system because all that sub does is to write a file there is no showing in the UI not even errors, errors will be printed in the STDERR of the shell calling your program and by shell I mean whatever program (Explorer.EXE) is calling your program.
Then you seem to be confused between widgets vs. value that an specific widget holds, if you want to pass parameters to a command line you have to read widget's contents before invoking it.
One thing to be expected if you call an external program is that your UI will be frozen while the external program runs and it will look like the program hung.