NonSoft

FTPアップロード/FTPダウンロード方法
(コマンドライン/バッチファイル)


 ち〜な〜み〜に〜

コマンドラインやバッチファイルで手軽にFTPのアップロードやダウンロードをする方法をご紹介します。

Windowsyに標準で入っているftp.exeというコマンドを使用すると簡単にFTP(クライアント側)通信が出来ます。

ftp.exeは通常[コマンド プロンプト]で使用するEXEなのでバッチファイルの中でも使用出来ます。

以下にftp.exeのコマンドラインでの使用方法とバッチファイルでの使用方法を記述します。
また参考までにftp.exeのヘルプ情報を記述して置きます。
コマンドラインでFTPする方法 バッチファイルでFTPする方法 FTPのヘルプ情報

FTP関係のその他のツールやサンプルソースはこちらです。
VBSやVBAでFTPアップロード/FTPダウンロードする方法
FTP(File Transfer Protocol)送受信のサンプル(VB.NET)
FTP(File Transfer Protocol)送受信のサンプル(VB6)
FTPで差分アップロード/差分ダウンロードするツール
FTP対応のフォルダ同期ツール(フォルダ監視人)


★コマンドラインでFTPコマンドを使用する方法
(1)ファイルをダウンロードする方法

C:\Temp>ftp [mypc]
Connected to [mypc].
220 Microsoft FTP Service
User ([mypc]:(none)): [myid]
331 Password required for [myid].
Password: [mypass]
230 User [myid] logged in.
ftp> cd ftp
250 CWD command successful.
ftp> binary
200 Type set to I.
ftp> get test.dat
200 PORT command successful.
150 Opening BINARY mode data connection for test.dat(734 bytes).
226 Transfer complete.
ftp: 734 bytes received in 0.00Seconds 734000.00Kbytes/sec.
ftp> quit
221
C:\Temp>
この例はバイナリモード[binary]でダウンロードする方法です。
[binary]指定しないとアスキーモード[ascii]でのダウンロードになります。

(2)ファイルをアップロードする方法

C:\Temp>ftp [mypc]
Connected to [mypc].
220 Microsoft FTP Service
User ([mypc]:(none)): [myid]
331 Password required for [myid].
Password: [mypass]
230 User [myid] logged in.
ftp> cd ftp
250 CWD command successful.
ftp> binary
200 Type set to I.
ftp> put test.dat
200 PORT command successful.
150 Opening BINARY mode data connection for test.dat.
226 Transfer complete.
ftp: 734 bytes sent in 0.00Seconds 734000.00Kbytes/sec.
ftp> quit
221
C:\Temp>
この例はバイナリモード[binary]でアップロードする方法です。
[binary]指定しないとアスキーモード[ascii]でのアップロードになります。


★バッチファイルでFTPコマンドを使用する方法
(1)ファイルをダウンロードする方法
次のようなファイル(test.ftp)を準備します。
open [mypc] [myid] [mypass] cd ftp binary get test.dat quit
バッチファイルで"ftp -i -s:test.ftp"を実行します。

C:\Temp>ftp -i -s:test.ftp
ftp> open [mypc]
Connected to [mypc].
220 Microsoft FTP Service
User ([mypc]:(none)):
331 Password required for [myid].

230 User [myid] logged in.
ftp> cd ftp
250 CWD command successful.
ftp> binary
200 Type set to I.
ftp> get test.dat
200 PORT command successful.
150 Opening BINARY mode data connection for test.dat(734 bytes).
226 Transfer complete.
ftp: 734 bytes received in 0.00Seconds 734000.00Kbytes/sec.
ftp> quit
221
C:\Temp>
この例はバイナリモード[binary]でダウンロードする方法です。
[binary]指定しないとアスキーモード[ascii]でのダウンロードになります。

(2)ファイルをアップロードする方法
次のようなファイル(test.ftp)を準備します。
open [mypc] [myid] [mypass] cd ftp binary put test.dat quit
バッチファイルで"ftp -i -s:test.ftp"を実行します。

C:\Temp>ftp -i -s:test.ftp
ftp> open [mypc]
Connected to [mypc].
220 Microsoft FTP Service
User ([mypc]:(none)):
331 Password required for [myid].

230 User [myid] logged in.
ftp> cd ftp
250 CWD command successful.
ftp> binary
200 Type set to I.
ftp> put test.dat
200 PORT command successful.
150 Opening BINARY mode data connection for test.dat.
226 Transfer complete.
ftp: 734 bytes sent in 0.00Seconds 734000.00Kbytes/sec.
ftp> quit
221
C:\Temp>
この例はバイナリモード[binary]でアップロードする方法です。
[binary]指定しないとアスキーモード[ascii]でのアップロードになります。


★FTPのヘルプ情報

FTPコマンドの引数(パラメタ)のヘルプ情報

C:\Temp>ftp -help

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] [-a] [-w:windowsize] [-A] [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.
  -a             Use any local interface when binding data connection.
  -A             login as anonymous.
  -w:buffersize  Overrides the default transfer buffer size of 4096.
  host           Specifies the host name or IP address of the remote
                 host to connect to.

Notes:
  - mget and mput commands take y/n/q for yes/no/quit.
  - Use Control-C to abort commands.

FTPの内部コマンドのヘルプ情報

!               Escape to the shell
?               Print local help information
append          Append to a file
ascii           Set ascii transfer type
bell            Beep when command completed
binary          Set binary transfer type
bye             Terminate ftp session and exit
cd              Change remote working directory
close           Terminate ftp session
delete          Delete remote file
debug           Toggle debugging mode
dir             List contents of remote directory
disconnect      Terminate ftp session
get             Receive file
glob            Toggle metacharacter expansion of local file names
hash            Toggle printing `#' for each buffer transferred
help            Print local help information
lcd             Change local working directory
literal         Send arbitrary ftp command
ls              List contents of remote directory
mdelete         Delete multiple files
mdir            List contents of multiple remote directories
mget            Get multiple files
mkdir           Make directory on the remote machine
mls             List contents of multiple remote directories
mput            Send multiple files
open            Connect to remote tftp
prompt          Force interactive prompting on multiple commands
put             Send one file
pwd             Print working directory on remote machine
quit            Terminate ftp session and exit
quote           Send arbitrary ftp command
recv            Receive file
remotehelp      Get help from remote server
rename          Rename file
rmdir           Remove directory on the remote machine
send            Send one file
status          Show current status
trace           Toggle packet tracing
type            Set file transfer type
user            Send new user information
verbose         Toggle verbose mode