This task allows you to connect to an ftp server and issue commands.
There are two types of commands supported:
1) The standard ftp commands as defined in RFC 959. Please
see list of ftp commands. Only the most useful commands are listed
here. Please search the internet for RFC 959 if you need more information
on all the standard Ftp commands.
2) Custom functions provided by the Ftp Command task. Please
see list of custom functions.
Please note that the ftp commands, that you normally use in the ftp commandline tools, in MSDOS, MacOSX or Unix etc. are not necessarily supported. For example, the LS, CD, Get or Put commands, in many commandline ftp tools are not valid RFC 959 ftp commands. Get and Put, are commands created by many commandline ftp tools, to implement the RETR and STOR commands, of RFC 959. To put or get files, you can use the custom functions $$GET& $$PUT that are provided by this task.
This task is multithreaded. So you can run multiple Ftp Command tasks simultaneously.
This task also outputs dynamic variables for each response provided by the Ftp server. The variables are of the form TaskTitle::ResponseX, where X is the response from the server, for each of your Ftp commands. You can use these response variables in a Variable Monitor task to do conditional processing.
Host
Enter the host name or IP address of the Ftp server. If you have
to connect through an Ftp proxy server, or firewall, enter the host name,
or IP address of the firewall, or proxy server.
Port
Enter the desired port. Default Ftp port = 21
Password
In the password field, enter your password required to connect.
Then in the command list, use the following syntax to send the hidden password:
$$LOGIN::username::$PASSWORD$ , or if you need to manually login,
use: PASS $PASSWORD$. The string $PASSWORD$ will be replaced by the
value in the password field. If you have no reason to hide your password,
you do not need to fill in the password field.
Commands
Enter your ftp commands, 1 per line. The custom commands are
case sensitive. First line should normally be the USER command, and
second line should normally be the PASS command. This field also
supports dynamic variables. Using dynamic
variables, you can enter a command, which will be dynamically resolved
at runtime. example: cd /users/$%USERNAME%$
Example1
USER tom
sends username
PASS $PASSWORD$
sends password
ACCT production
sends account information
PWD
prints current remote ftp directory
CWD /users/tom
sets /users/tom as the current ftp directory
$$LCD::c:\test
sets c:\test as the current local directory
$$MPUT::test
puts all files from c:\test, which include 'test' in their name, to /users/tom
$$MGET::
gets all files from /users/tom to c:\test
Example2
$$LOGIN::user::$PASSWORD$ logon information
PWD
prints current remote ftp directory
CWD /users/tom
sets /users/tom as the current ftp directory
$$LCD::c:\test
sets c:\test as the current local directory
$$PASV
sets the passive mode of transfer
$$GET::test.txt
gets test.txt from /users/tom to c:\test
$$PUT::test.txt
puts test.txt from c:\test to /users/tom
$$LOGIN | Description: Simple logon using username
and password information
Syntax: $$LOGIN::username::password Examples: $$LOGIN::jim::jim04 or $$LOGIN::jim::$PASSWORD$ Comments: To hide password, use $PASSWORD$ and enter password in password field For more complicated logons or to connect through firewalls, you may need to use as required: USER, PASS, ACCT, SITE, OPEN etc.. |
$$LCD | Description: Sets the current local
folder
Syntax: $$LCD::path_to_local_folder Example: $$LCD::c:\data\test Comments: Very important. Should always be set before transferring files Comments: Internal module use only. Ftp server has no idea about current local folder Comments: Used internally by $$PUT, $$GET, $$MPUT, $$MGET, $$MDEL functions |
$$PASV | Description: Sets the passive mode
of transfer.
Syntax: $$PASV |
$$PUT | Description: Puts a single file from
current local folder, to current remote ftp folder
Syntax: $$PUT::filename Example: $$PUT::test.txt Comments: Only single file is put, file should exist in current local folder |
$$GET | Description: Gets a single file from
current remote ftp folder, to current local folder
Syntax: $$GET::filename Example: $$GET::test.txt Comments: Only single file is got, file should exist in current remote ftp folder |
$$PPUT | Description: Puts a single file from
local path, to ftp path
Syntax: $$PPUT::path_to_local_file::path_to_remote_file Example: $$PPUT::c:\data\test.txt::/users/tom/test5.txt Comments: Only single file is put, file path should exist in the local system |
$$PGET | Description: Gets a single file from
ftp path, to local path
Syntax: $$PGET::path_to_remote_file::path_to_local_file Example: $$PGET::/users/tom/test5.txt::c:\data\test.txt Comments: Only single file is got, file path should exist in the remote system |
$$MPUT | Description: Puts multiple files from
current local folder, to current ftp folder
Syntax: $$MPUT::filename_filter Example: $$MPUT:: (will put all files from current local folder) Example: $$MPUT::test (will put all files which include test in their name) Example: $$MPUT::.txt^.htm (will put all files which have .txt or .htm extensions) Comments: Enter the filename_filter using the following wildcard rules |
$$MGET | Description: Gets multiple files from
current ftp folder, to current local folder
Syntax: $$MGET::filename_filter Example: $$MGET::* (will get all files from current ftp folder) Example: $$MGET::test (will put all files which include test in their name) Example: $$MGET::.txt^.htm (will put all files which have .txt or .htm extensions) Comments: Enter the filename_filter using the following wildcard rules Comments: Automatically detects directory listing style and get directory information |
$$MSGET | Description: Gets multiple files from
current ftp folder to current local folder
Syntax: $$MSGET::* (will get all files from current ftp folder) Example: $$MSGET::test (will put all files which include test in their name) Example: $$MSGET::.txt^.htm (will put all files which have .txt or .htm extensions) Comments: Enter the filename_filter using the following wildcard rules Comments: Only obtains names of objects in current ftp directory This function does not try to detect if object is a File, or a Directory. It will also try to GET directories, if they satisfy the filename filter. This results in the following error being output, for every Directory in current ftp folder: 550 dir_name: [Error information varies by ftp server]. This is expected behaviour. |
$$MDEL | Description: Deletes multiple files
from current ftp folder
Syntax: $$MDEL::filename_filter Example: $$MDEL:: (will delete all files from current remote ftp folder) Example: $$MDEL::test (will delete all files which include test in their name) Example: $$MDEL::.txt^.htm (will delete all files which have .txt or .htm extensions) Comments: Enter the filename_filter using the following wildcard rules |
$$MLDEL | Description: Deletes multiple files from current local folder
Syntax: $$MLDEL::filename_filter Example: $$MDEL:: (will delete all files from current local folder) Example: $$MDEL::test (will delete all files which include test in their name) Example: $$MDEL::.txt^.htm (will delete all files which have .txt or .htm extensions) Comments: Enter the filename_filter using the following wildcard rules |
List of useful ftp commands
- RFC 959
HELP | Description: Returns list of commands
or details for a single command
Syntax: HELP [command] Example: HELP returns a list of commands supported by the ftp server Example: HELP USER returns details on the USER command |
USER | Description: Sends the username to
begin the login process
Syntax: USER userID Example: USER tom |
PASS | Description: After sending the USER
command,send this command to complete login
Syntax: PASS user_password Example: PASS ergts56r |
PASV | Description: Sets the passive mode
of transfer.
Syntax: PASV |
TYPE | Description: Specifies ascii or binary
mode of data transfer
Syntax: TYPE mode Example: TYPE I or TYPE A Comments: A - ASCII text, E - EBCDIC text, I - image (binary data) |
PORT | Description: Specifies host &
port to which the ftp server should connect for next data transfer
Syntax: PORT h1,h2,h3,h4,p1,p2 Example: PORT 192,168,0,121,15,196 Comments: ip address = h1.h2.h3.h4, port = p1*256 + p2 |
ACCT | Description:Sends the account required
for login
Syntax: ACCT account_name Comments: normally sent after the PASS command. Uncommon command |
CWD | Description: Sets the current ftp
directory on remote ftp server
Syntax: CWD remote_ftp_path Example: CWD /users/tom/data |
CDUP | Description: Sets the parent of the
current ftp folder to be the current ftp folder
Syntax: CDUP |
DELE | Description: Deletes a single file
from the current ftp folder
Syntax: DELE filename Example: DELE test.txt |
RNFR | Description: Used to rename a file.
Specifies the file to be renamed
Syntax: RNFR original_name Example: RNFR test.txt Comments: Should be followed by RNTO command |
RNTO | Description: Used to rename a file.
Specifies the new name for the file
Syntax: RNTO new_name Example: RNTO new.txt Comments: Should be preceded by RNFR command |
SITE | Description: Used to issue a site
specific command
Syntax: SITE command Example: Use 'HELP SITE' to see list and syntax of supported commands Comments: May not be supported by many Ftp servers |
RETR | Description: Transfers file from remote
host
Syntax: RETR filename Example: RETR test.txt Comments: Should be preceeded by the PORT or PASV commands |
STOR | Description: Transfers file to the
remote host
Syntax: STOR filename Example: STOR test.txt Comments: Should be preceeded by the PORT or PASV commands |