Sponsoring website: Emergency Boot Kit



The Windows 95/98/NT Command-Line
(Console) " ftp " Client Program



If you type the letters ftp at a DOS-Window (Command Line) prompt, like this:
C:\WINDOWS>ftp      you will be placed into an interactive program with its own prompt:     ftp>
Entering a question mark (?) or the word "help" will output a list of commands on your screen like this:

ftp> ?
Commands may be abbreviated.  Commands are:

!               delete          literal         prompt          send
?               debug           ls              put             status
append          dir             mdelete         pwd             trace
ascii           disconnect      mdir            quit            type
bell            get             mget            quote           user
binary          glob            mkdir           recv            verbose
bye             hash            mls             remotehelp
cd              help            mput            rename
close           lcd             open            rmdir
The ftp program in Windows 95 breaks the general rule of how you obtain help information directly from the command line. In most cases, you'd type the name followed by a space, a forward slash(/) and a question mark(?) to get it. But ftp requires a dash(-) and an (h) instead:
C:\WINDOWS>ftp -h

Transfers files to and from a computer running an FTP server service
(sometimes called a daemon). Ftp can be used interactively.

FTP [-v] [-d] [-i] [-n] [-g] [-s:filename] [host]

  -v             Suppresses display of remote server responses.
  -n             Suppresses auto-login upon initial connection.
  -i             Turns off interactive prompting during multiple file
                 transfers.
  -d             Enables debugging.
  -g             Disables filename globbing (see GLOB command).
  -s:filename    Specifies a text file containing FTP commands; the
                 commands will automatically run after FTP starts.
  host           Specifies the host name or IP address of the remote
                 host to connect to.
These commands show that you can run ftp "in the background" as it's called without ever having to interact with the program yourself. For now, let's use the program interactively to figure out what the commands actually do:

    The first thing you need to be aware of is that all the commands within ftp are case-sensitive.  Commands to your own ftp program (those listed above) use only lower-case characters. For example, entering "HELP" at the ftp prompt, outputs this on your screen:   ?Invalid command

Here's the list of commands and a brief explanation of each one taken directly from the ftp helps within the program (and a few comments of my own):

         ?     print local help information
      help     print local help information -- both do the same thing.

      bell    [toggle] beep  when command completed
     debug     toggle debugging mode -- presents extra information about
               the data passed between the connected computers.
      glob     toggle metacharacter expansion of local file names
      hash     toggle printing `#' for each buffer transferred
     trace     toggle packet tracing
   verbose     toggle verbose mode

    status     show current status

      open     connect to remote tftp -- you'll be asked for the URL if
                                         you don't supply it.
      user     send new user information

remotehelp     get help from remote server ==> Note: Becuase most of the
                commands have critical timing requirements (such as the 
                PORT command), it's best to leave the handling of these
                to the ftp program itself. However, I'd encourage you to
                try the commands which do not involve the transfer of
                files, such as STATS or STAT (depends upon the particular
                server) or SYST, etc., so you can get more info about the
                remote server you are interacting with. You will find two
                examples of this instruction below; a * is usually placed
                next to commands that are not active on the server.

   literal     send arbitrary ftp command
     quote     send arbitrary ftp command -- both do the same thing.

         !     escape to the shell -- You can carry out DOS commands on
               your computer while still connected to a remote, then use
               the "exit" command to return to your FTP session!

     ascii     set  ascii transfer type
    binary     set binary transfer type
      type     set   file transfer type

    prompt     force interactive prompting on multiple commands

  Directory Commands:
       pwd     [display] working directory [from] remote machine

        cd     change remote working directory
       lcd     change  local working directory

       dir      list contents of remote directory -- Use this command to
                  display attibutes, sizes, dates and times of files.
        ls     nlist contents of remote directory -- lists filenames only.

      mdir      list contents of multiple remote directories
       mls     nlist contents of multiple remote directories

     mkdir       make directory on the remote machine
     rmdir     remove directory on the remote machine

  File Commands:
      recv     receive file
       get     receive file
      mget     get multiple files

      send     send one file
       put     send one file
      mput     send multiple files

    append     append to a file

    rename     rename file

    delete     delete remote file
   mdelete     delete multiple files

  Ending a Session:
     close     terminate ftp session
disconnect     terminate ftp session
       bye     terminate ftp session and exit
      quit     terminate ftp session and exit


Some Real FTP Server Examples:

Normally one would connect to a remote server by entering its URL on the same line as the ftp command itself (this way you can skip having to use the 'open' command). Our first fragment starts out this way ( I just thought you might like to see the header from Microsoft's FTP server):


C:\WINDOWS>ftp ftp.microsoft.com
Connected to ftp.microsoft.com.
220 CPMSFTFTPA04 Microsoft FTP Service (Version 5.0).
User (ftp.microsoft.com:(none)): anonymous
331 Anonymous access allowed, send identity (e-mail name) as password.
Password: [ Note: Passwords are always hidden from view. ]
230-This is FTP.MICROSOFT.COM. Please see the dirmap.txt file for more 
information.
230 Anonymous user logged in.
This next example is longer and contains a number of commands in action:
C:\WINDOWS>ftp ftp.simtel.net
Connected to ftp.simtel.net.
220 ftphost.simtel.net FTP server (Version wu-2.5.0(1) Wed Jun 23 
00:02:55 EDT 1999) ready.
User (ftp.simtel.net:(none)): anonymous
331 Guest login ok, send your complete e-mail address as password.
Password:
230-              Welcome to FTPHost.Simtel.Net,
230-            the Simtel.Net primary mirror site,
230-       hosted through the courtesy of pair Networks.
230-
230-You are user 190 of 300 simultaneous users allowed.  Access is
230-allowed at any time.  If you have any unusual problems, please
230-report them via e-mail to support@Simtel.Net
230-
230-The Simtel.Net files are located in the /pub/simtelnet directory.
230-
230-Simtel.Net is also on the Web - http://www.simtel.net/simtel.net/
230-
230 Guest login ok, access restrictions apply.
ftp> remotehelp
214-The following commands are recognized (*'s are unimplemented).
   USER    PORT    STOR    MSAM*   RNTO    NLST    MKD     CDUP
   PASS    PASV    APPE    MRSQ*   ABOR    SITE    XMKD    XCUP
   ACCT*   TYPE    MLFL*   MRCP*   DELE    SYST    RMD     STOU
   SMNT*   STRU    MAIL*   ALLO    CWD     STAT    XRMD    SIZE
   REIN*   MODE    MSND*   REST    XCWD    HELP    PWD     MDTM
   QUIT    RETR    MSOM*   RNFR    LIST    NOOP    XPWD
214 Direct comments to support@Simtel.Net.
ftp> quote SYST
215 UNIX Type: L8 Version: BSD-199506
ftp> quote STAT
211-ftphost.simtel.net FTP server status:
     Version wu-2.5.0(1) Wed Jun 23 00:02:55 EDT 1999
     Connected to 63.209.86.71
     Logged in anonymously
     TYPE: ASCII, FORM: Nonprint; STRUcture: File; transfer MODE: Stream
     No data connection
     0 data bytes received in 0 files
     0 data bytes transmitted in 0 files
     0 data bytes total in 0 files
     63 traffic bytes received in 0 transfers
     1613 traffic bytes transmitted in 0 transfers
     1726 traffic bytes total in 0 transfers
211 End of status
ftp> ls
200 PORT command successful.
150 Opening ASCII mode data connection for file list.
pub
dsk3
dsk4
HEADER
dsk1
dsk2
bin
etc
.message
226 Transfer complete.
57 bytes received in 3.24 seconds (0.02 Kbytes/sec)
ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 18
-rw-r--r--  1 root  wheel     450 Jun 25  1999 .message
-rw-r--r--  1 root  wheel     423 Dec  8  1998 HEADER
d--x--x--x  2 root  operator  512 Dec 15  1996 bin
drwxr-xr-x  3 root  wheel     512 Dec  5  1998 dsk1
drwxr-xr-x  3 root  wheel     512 Dec  5  1998 dsk2
drwxr-xr-x  3 root  wheel     512 Dec  5  1998 dsk3
drwxr-xr-x  3 root  wheel     512 Dec  5  1998 dsk4
d--x--x--x  2 root  operator  512 Jun 25  1999 etc
drwxr-xr-x  3 root  wheel     512 Dec  5  1998 pub
226 Transfer complete.
490 bytes received in 0.11 seconds (4.45 Kbytes/sec)
ftp> debug
Debugging On.
ftp> status
Connected to ftp.simtel.net.
Type: ascii; Verbose: On; Bell: Off; Prompting: On; Globbing: On
Debugging: On; Hash mark printing: Off
ftp> dir
---> PORT 63,209,86,71,11,220
200 PORT command successful.
---> LIST
150 Opening ASCII mode data connection for /bin/ls.
total 18
-rw-r--r--  1 root  wheel     450 Jun 25  1999 .message
-rw-r--r--  1 root  wheel     423 Dec  8  1998 HEADER
d--x--x--x  2 root  operator  512 Dec 15  1996 bin
drwxr-xr-x  3 root  wheel     512 Dec  5  1998 dsk1
drwxr-xr-x  3 root  wheel     512 Dec  5  1998 dsk2
drwxr-xr-x  3 root  wheel     512 Dec  5  1998 dsk3
drwxr-xr-x  3 root  wheel     512 Dec  5  1998 dsk4
d--x--x--x  2 root  operator  512 Jun 25  1999 etc
drwxr-xr-x  3 root  wheel     512 Dec  5  1998 pub
226 Transfer complete.
490 bytes received in 5.87 seconds (0.08 Kbytes/sec)

[ I didn't get a chance to copy everything here! ]

ftp> quit
---> QUIT
221-You have transferred 0 bytes in 0 files.
221-Total traffic for this session was 5827 bytes in 5 transfers.
This last example is even longer and contains a file download among other things. This is the Geocities server that all the webpage authors use, so it can get pretty slow at times:
C:\WINDOWS>ftp ftp.geocities.com
Connected to ftp.geocities.com.
220-Welcome to the Yahoo! GeoCities FTP server.
220-IMPORTANT: This service has changed!
220-Get all details at:
220-http://help.yahoo.com/help/us/geo/gftp/
220-
220-No anonymous logins accepted.
220-
220-Enter new Yahoo! GeoCities member name
220
User (ftp.geocities.com:(none)): User NAME
331-Enter your Yahoo! GeoCities member password
331
Password: [ PASSWORD is always HIDDEN ]
230-Taking inventory on your homestead
230-Inventory completed
230-You are using 60.3% of your homestead.
230 You have 5.950 MB of space available.
ftp> remotehelp
200 PORT command successful.
214-The following commands are recognized (*'s are unimplemented).
   USER    QUIT    MODE    REST    CWD     STAT    RMD     XCUP
   PASS    PORT    RETR    RNFR    XCWD    HELP    XRMD    SIZE
   ACCT*   PASV    STOR    RNTO    LIST    NOOP    PWD     MDTM
   SMNT*   TYPE    APPE    ABOR    NLST    MKD     XPWD
   REIN*   STRU    ALLO    DELE    SYST    XMKD    CDUP
214 Direct comments to ftp-bugs@ftp2.
ftp> quote SYST
215 UNIX Type: L8
ftp> pwd
200 PORT command successful.
257 "/Athens/6939" is current directory.

---------------------------------------------------------------
 [ NOTE: IF THE CONNECTION IS HAVING PROBLEMS OR IS JUST VERY
         BUSY, YOU MAY GET THE FOLLOWING REPLY AT ANY TIME...]

425 Can't build data connection: Connection refused.

[ THE DATA MAY ALSO COME DOWN DURING A LATER COMMAND INSTEAD! ]
---------------------------------------------------------------

ftp> status
Connected to ftp.geocities.com.
Type: ascii; Verbose: On; Bell: Off; Prompting: On; Globbing: On
Debugging: Off; Hash mark printing: Off
ftp> cd CHI
250 CWD command successful.
ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 400
-rwxrw-r-x   1 webmastr webmastr   69123 May 23  1997 CG11.JPG
-rwxrw-r-x   1 webmastr webmastr   80165 Jul 21  1998 STG3.jpg
-rwxrw-r-x   1 webmastr webmastr   23615 Aug 20 23:05 SonarDiplomaASW.gif
-rwxrw-r-x   1 webmastr webmastr    2912 Feb 17  1999 bootcamp.html
-rwxrw-r-x   1 webmastr webmastr   14636 Aug 20 23:05 sonrdip.gif

226-ASCII mode
226 Transfer complete.
350 bytes received in 0.16 seconds (2.19 Kbytes/sec)
ftp> cd ..
250 CWD command successful.
ftp> cd XYZ
250 CWD command successful.
ftp> dir
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
total 1392
-rwxrw-r-x   1 webmastr webmastr   60793 Jul  7  1998 ATEAM.jpg
-rwxrw-r-x   1 webmastr webmastr  102535 Jul 21  1998 CircuitBoard.jpg
-rwxrw-r-x   1 webmastr webmastr   36964 Jul 21  1998 Harness.jpg
-rwxrw-r-x   1 webmastr webmastr   38442 Jul 21  1998 MTestSta.jpg
-rwxrw-r-x   1 webmastr webmastr   43535 Jul 21  1998 Monitors.jpg
-rwxrw-r-x   1 webmastr webmastr   32785 Jul 21  1998 Projectr.jpg
-rwxrw-r-x   1 webmastr webmastr   13132 Jul 21  1998 PwrTranHS.jpg
-rwxrw-r-x   1 webmastr webmastr   58725 Jul  7  1998 TWOBILLS.jpg
-rwxrw-r-x   1 webmastr webmastr  120265 Jul 21  1998 Testing.jpg
-rwxrw-r-x   1 webmastr webmastr   13174 Jul 21  1998 TimeMagGlenCa.jpg
-rwxrw-r-x   1 webmastr webmastr   67882 Jul  7  1998 WORKSTAT.jpg
-rwxrw-r-x   1 webmastr webmastr   38044 Jul 21  1998 Wiring.jpg
-rwxrw-r-x   1 webmastr webmastr     981 Jun 22  1999 XYTRON.html
-rwxrw-r-x   1 webmastr webmastr   23031 Jul 21  1998 Xfrmrs.jpg
-rwxrw-r-x   1 webmastr webmastr     957 Nov  8  1998 starman.html
-rwxrw-r-x   1 webmastr webmastr     221 Jul 19  1998 tron.html
-rwxrw-r-x   1 webmastr webmastr    1385 Nov  8  1998 twobills.html

226-ASCII mode
226 Transfer complete.
1166 bytes received in 1.76 seconds (0.66 Kbytes/sec)
ftp> get Testing.jpg
200 PORT command successful.
150 Opening ASCII mode data connection for Testing.jpg (120265 bytes).
######################################################
226-ASCII mode
226 Transfer complete.
120687 bytes received in 47.45 seconds (2.54 Kbytes/sec)
ftp> debug
Debugging On.
ftp> cd ..
---> CWD ..
250 CWD command successful.
ftp> close
---> QUIT
221 Goodbye.
ftp> quit

C:\WINDOWS>



  Windows 95/98 MS-DOS 7.0.

  How To Make a Boot Disk.

  "The Starman's Realm" Home Page .