Upload (mput) and Download (mget) Multiple Files Automatically in FTP Transfer
FTP or File Transfer Protocol is a useful utility that allows you to transfer several files between a workstation or client with the FTP server. Although nowadays GUI FTP client programs such as WS-Ftp and FileZilla are very common, but DOS or command-line FTP interface comes in useful and handy as it’s free and especially when you don’t have Internet connection to download the advance FTP clients, as basic FTP functionalities are built-in into most operating system including Windows XP, Windows Vista, Windows 2003, Linux, Unix, FreeBSD and so on.
In DOS or command line FTP, to transfer several files, you can use the commands mput (Multiple PUT) and mget (Multiple GET). These commands work exactly like put and get except the commands allow you to transfer multiple files in a single command by specifying the files that you want to transfer with wildcards such as * to get all files.
However, mget and mput will prompt user to choose Yes or No before each file is tranfered to or from the server. It’s troublesome and time wasting if you have to upload or download a lot of files as you have to attend and pay attention to the FTP process and press Y for each and every file.
To avoid the situation and automatically transfer the files so that the FTP session can process unattended, use the prompt command before using the mput or mget commands. The prompt command toggles between prompting on, where ftp will prompt you to choose yes or no before each file is transfered, and prompting off, which will copy all files without prompting. By default, prompting is on. So to continue to FTP transfer all files without asking, remember to issue prompt command before starting the transfer process. Ask it do not prompt before putting or getting the files, make sure that your existing files do have have the same file name as FTP will overwrite the existing files that exists on the destination directory automatically too. The command is simple, just a single word “prompt”:
ftp> prompt
Interactive mode off.
FTP command line utility should return Interactive mode off, which is FTP will no longer prompting for instruction from users (prompting off) and will always assumes Yes to whatever actions, in case is get or put the file or overwriting. If key in prompt again will turn prompting on. With prompting on, however, you can easily terminate the FTP file transfer session if the transfer might not work or might take too long by pressing Ctrl-C (^c or press and hold the Control and C keys simultaneously). FTP utility will ask:
Continue with mput?.
Responding with the character n (for No) will stop the transfer process.
Related posts:
- Find Files that are Modified Today (or Since Certain Time Ago) in Unix
- Search and Find All Files including Hidden and System Files
- Enable Sharing and Transfering of Potentially Unsafe Files in Windows Live Messenger
- Recover Lost and Deleted Files, Folders or Data with PC Inspector File Recovery
- Resize Photos Automatically To Fit into Email





thanks bud!
thazz.. it helpful me..
how to download multiple file without replaceing existing files using mget command
That "prompt" made my day
Thanks, I didn't know the right search word, searching around for 10 minutes, until got the right word 'ftp mget no prompt' and landed to your web page. Very helpful.
Thanks a lot. Thats a very good tip. I was strugling to find a solution for this problem.
thanks for the prompt tip. This is very helpful to me.
Hi Rolf:
Probably, a primitive approach… use this…
Split your script into two files…
file 1:
objMyFile.WriteLine (”prompt”)
objMyFile.WriteLine (”mput ” & strFilePut)
file 2:
## Call file 1 here… ##
objMyFile.WriteLine (”disconnect”)
objMyFile.WriteLine (”bye”)
objMyFile.Close
…and try calling the file1 and file2… This way, disconnect would be called only after the file 1 completes it execution…
Hope It Helps…
Thanks…
- Muthu
I used the wscript.sleep to delay for completion.
we can use runique OPTION in ftp.
runique Toggle storing of files on the local system with unique
filenames. If a file already exists with a name equal to
the target local filename for a get or mget command, a .1 is
appended to the name. If the resulting name matches another
existing file, a .2 is appended to the original name. If
this process continues up to .99, an error message is
printed, and the transfer does not take place. ftp reports
the unique filename. Note that runique does not affect
local files generated from a shell command (see below). The
default value is off.
how to download multiple file without replaceing existing files using mget command
thanks a lot.
ftp> prompt
Interactive mode off.
This command is very much useful command to get the bulk load.
To turn the prompting on… use it again.
ftp> prompt
Interactive mode on.
ftp>
how to download multiple file without replaceing existing files using mget command
really helpful …
thanks.
Lovely Hurling
Just what I needed
Thanks much
thanks a lot for the article, was very helpful
I love you. I had to move over 5000 files and I was doing like Homer Simpson with the bird pressing the "Y" button automatically.
Thank you.
Thank you for the ‘prompt’ tip to turn off prompting.
Extremenly helpful.
saved time, thanks alot for mput explanation.
thanks
Thanks for the 'prompt' tip to turn off prompting.
I found this article very helpful. I have one problem doing the "mget" and that is that the script goes to "disconnect" and "bye" before the ftp been completed. How do I handle this? Thank you.
objMyFile.WriteLine ("prompt")
objMyFile.WriteLine ("mput " & strFilePut)
objMyFile.WriteLine ("disconnect")
objMyFile.WriteLine ("bye")
objMyFile.Close
Set objFSO = Nothing
Set objMyFile = Nothing
'Run ftp script
Set objShell = WScript.CreateObject( "WScript.Shell" )
objShell.Run ("ftp -s:" & chr(34) & strFTPScriptFileName & chr(34))
Set objShell = Nothing