How Do I Ftp Multiple Files from the Command Line?
I Would Like to Ftp the Contents of a Directory, but I Can't Seem to Find the Right Way to Use a Wildcard. It Seems Like This Would Be a Common Thing to Do; Is...
I would like to FTP the contents of a directory, but I can't seem to find the right way to use a wildcard. It seems like this would be a common thing to do; is my whole approach wrong?
The command is
ftp -s:"C:\Scripts\ftp01" ftpserver.domain.com
The script that is called is below. Updated per billinkc.
username
password
ascii
cd "/destinationfolder"
lcd "C:\Backup"
mput *.bak
close
quit
The script starts, no files are copied and the FTP session remains open.
230 User username Logged in Successfully
ftp> ascii
200 TYPE Command OK A
ftp> cd "/destinationfolder"
250 Directory successfully changed to "/destinationfolder"
ftp> lcd "C:\Backup"
Local directory now C:\Backup.
ftp> mput *.bak
mput 9829980.bak? close
mput 6406766.bak? quit
ftp>
ftp>
Conclusion
I needed to add the flag to suppress the PROMPT command:
ftp -i -s:"C:\Scripts\ftp01" ftpserver.domain.com
8 Answers
Before issuing the mput command, issue a prompt command to disable Interactive Mode. Once that's off it shouldn't ask you to confirm each file for the mput (or an mget).
Try inserting the line prompt n just before the mput line
I've never tried using the pathname for local folders, but I have done it by changing the local directory (lcd):
username
password
ascii
cd "/destinationfolder"
lcd Backup
mput *.bak
close
quit
Use the mput command to put multiple files.
As Tim Haegele mentioned, ncftp does this very smoothly on Linux, if you are able and willing to install it:
sudo apt-get install ncftp
ncftp -R ftpserver.domain.com . /Scripts/ftp01
This is the script that I used and that worked for me.
For ftp1.bat (script):
ftp -i -s:\tmp\ftp.txt
For ftp.txt (script):
Open ip
username
password
prompt
lcd C:\YourFolder\YourFolder
binary
cd /DestinationFolder
prompt
mput *.bak
cd ..
disconnect
quit
Maybe there're parts that aren't necessary but I'm putting it as it worked for me, hope it helps
You can try the mirror command of lftp with --include option