No, I cannot think of a way to keep the ftp process alive while continuing to run the batch file, and sending commands to the ftp process.
However, if this fits your needs, your batch file can collect all the data it needs first, generate a file containing all the ftp commands, then pass that file to ftp.exe as a last step.
For example:
SET /P ftpuser=Username:
SET /P ftppass=Password:
:: generate ftp script file
ECHO %ftpuser% > ftpcommands.txt
ECHO %ftppass% >> ftpcommands.txt
ECHO put file.txt >> ftpcommands.txt
ECHO quit >> ftpcommands.txt
:: now call ftp and have it process all the commands
ftp -s:ftpcommands.txt server.com