Your suggestion of one command file with multiple open, put, close commands would work. I could just keep the same .bat file to execute winscp on this dynamic command file. The only "down" side is I will have to have a separate DB query to generate my PGP Encryption .bat file. I'll let you know how it works.
WinSCP 4.1 supports using environment variables in script file. So you can have one script file and set its parameters in your batch file using the variables. See documentation.
As for your original question about spaces, see another documentation.