Jun 30, 2006
My Digital Life Editorial Team

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:

  1. Find Files that are Modified Today (or Since Certain Time Ago) in Unix
  2. Search and Find All Files including Hidden and System Files
  3. Enable Sharing and Transfering of Potentially Unsafe Files in Windows Live Messenger
  4. Recover Lost and Deleted Files, Folders or Data with PC Inspector File Recovery
  5. Resize Photos Automatically To Fit into Email

23 Comments

  • 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

Leave a comment

Notify me of followup comments via e-mail. You can also subscribe without commenting.

Subscribe

Free email subscriptions
Get latest updates in email for free:

Translate This Page