I know this is an old question, but I wanted to add something to the answers already here, hoping to help someone else.
You can script the ftp command with the -s:filename parameter. The syntax is just a list of commands to pass to the ftp shell, each of which ends with a newline. This page has a nice link to commands that can be executed using ftp .
Download / Download the entire directory structure
Using regular ftp does not work very well when you need to have a complete directory tree copied to or from an ftp site. Therefore, you can use something similar to handle these situations.
These scripts work with the Windows ftp command and allow you to load and load entire directories from a single command. This makes it quite independent when used in different systems.
Basically, they display the directory structure to be loaded / loaded, issue the appropriate ftp commands to the file, and then execute these commands when the mapping is complete.
ftpupload.bat
@echo off SET FTPADDRESS=%1 SET FTPUSERNAME=%2 SET FTPPASSWORD=%3 SET LOCALDIR=%~f4 SET REMOTEDIR=%5 if "%FTPADDRESS%" == "" goto FTP_UPLOAD_USAGE if "%FTPUSERNAME%" == "" goto FTP_UPLOAD_USAGE if "%FTPPASSWORD%" == "" goto FTP_UPLOAD_USAGE if "%LOCALDIR%" == "" goto FTP_UPLOAD_USAGE if "%REMOTEDIR%" == "" goto FTP_UPLOAD_USAGE :TEMP_NAME set TMPFILE=%TMP%\%RANDOM%_ftpupload.tmp if exist "%TMPFILE%" goto TEMP_NAME SET INITIALDIR=%CD% echo user %FTPUSERNAME% %FTPPASSWORD% > %TMPFILE% echo bin >> %TMPFILE% echo lcd %LOCALDIR% >> %TMPFILE% cd %LOCALDIR% setlocal EnableDelayedExpansion echo mkdir !REMOTEDIR! >> !TMPFILE! echo cd %REMOTEDIR% >> !TMPFILE! echo mput * >> !TMPFILE! for /d /r %%d in (*) do ( set CURRENT_DIRECTORY=%%d set RELATIVE_DIRECTORY=!CURRENT_DIRECTORY:%LOCALDIR%=! echo mkdir "!REMOTEDIR!/!RELATIVE_DIRECTORY:~1!" >> !TMPFILE! echo cd "!REMOTEDIR!/!RELATIVE_DIRECTORY:~1!" >> !TMPFILE! echo mput "!RELATIVE_DIRECTORY:~1!\*" >> !TMPFILE! ) echo quit >> !TMPFILE! endlocal EnableDelayedExpansion ftp -n -i "-s:%TMPFILE%" %FTPADDRESS% del %TMPFILE% cd %INITIALDIR% goto FTP_UPLOAD_EXIT :FTP_UPLOAD_USAGE echo Usage: ftpupload [address] [username] [password] [local directory] [remote directory] echo. :FTP_UPLOAD_EXIT set INITIALDIR= set FTPADDRESS= set FTPUSERNAME= set FTPPASSWORD= set LOCALDIR= set REMOTEDIR= set TMPFILE= set CURRENT_DIRECTORY= set RELATIVE_DIRECTORY= @echo on
ftpget.bat
@echo off SET FTPADDRESS=%1 SET FTPUSERNAME=%2 SET FTPPASSWORD=%3 SET LOCALDIR=%~f4 SET REMOTEDIR=%5 SET REMOTEFILE=%6 if "%FTPADDRESS%" == "" goto FTP_UPLOAD_USAGE if "%FTPUSERNAME%" == "" goto FTP_UPLOAD_USAGE if "%FTPPASSWORD%" == "" goto FTP_UPLOAD_USAGE if "%LOCALDIR%" == "" goto FTP_UPLOAD_USAGE if not defined REMOTEDIR goto FTP_UPLOAD_USAGE if not defined REMOTEFILE goto FTP_UPLOAD_USAGE :TEMP_NAME set TMPFILE=%TMP%\%RANDOM%_ftpupload.tmp if exist "%TMPFILE%" goto TEMP_NAME echo user %FTPUSERNAME% %FTPPASSWORD% > %TMPFILE% echo bin >> %TMPFILE% echo lcd %LOCALDIR% >> %TMPFILE% echo cd "%REMOTEDIR%" >> %TMPFILE% echo mget "%REMOTEFILE%" >> %TMPFILE% echo quit >> %TMPFILE% ftp -n -i "-s:%TMPFILE%" %FTPADDRESS% del %TMPFILE% goto FTP_UPLOAD_EXIT :FTP_UPLOAD_USAGE echo Usage: ftpget [address] [username] [password] [local directory] [remote directory] [remote file pattern] echo. :FTP_UPLOAD_EXIT set FTPADDRESS= set FTPUSERNAME= set FTPPASSWORD= set LOCALDIR= set REMOTEFILE= set REMOTEDIR= set TMPFILE= set CURRENT_DIRECTORY= set RELATIVE_DIRECTORY= @echo on
Bryan Way Apr 22 '15 at 7:28 2015-04-22 19:28
source share