Programming Field

Ftp - DOS/コマンドプロンプト コマンド一覧

FTP サーバーに接続してファイルの転送(ダウンロード・アップロード)を行う対話型プログラムです。

※ このプログラムは DOS のプログラムではなく、Windows 95 以降で使用できる Windows コンソールプログラムです。

※ ここでは ftp.exe の使用方法については記述しません。

構文

ftp[.exe] [-v] [-d] [-i] [-n] [-g] [-s:<filename>] [-a] [-w:<buffer-size>] [-A] [<host>]

※ オプションの文字は大文字・小文字が区別されます。また、他のコマンドとは異なり、オプションは「/」ではなく「-」で指定する必要があります。

-v
FTP サーバーの応答メッセージを表示しないようにします。ただし ftp.exe 内で使用できる pwd コマンドなど、応答の表示が必要なコマンドはちゃんと表示されます。
ftp.exe 内では verbose コマンドでこれを切り替えることが出来ます。
-d
ftp.exe をデバッグモードで実行します。デバッグモードでは、ftp.exe がサーバーに送信するコマンドがすべて表示されます。なお、サーバーに送信する PASS コマンドもパスワードを伏せることなく表示されるので注意してください。
ftp.exe 内では debug コマンドでこれを切り替えることが出来ます。
-i
ftp.exe 内の mget コマンドと mput コマンド(複数ファイルの送受信に使用)で、1つずつファイルを送信/受信するか尋ねずに、すべてに対して送信/受信を行います。これを指定しない場合は、1つずつのファイルに対して送信/受信を行うかを yes/no/quit (y/n/q) で指定する必要があります。
ftp.exe 内では prompt コマンドでこれを切り替えることが出来ます。
-n
サーバーに接続するときユーザー名を尋ねないようにします。この場合、ftp.exe 内の user コマンドを使用してユーザーを名乗る必要があります。
-g
ファイル名などでワイルドカードを使用できないようにします。
ftp.exe 内では glob コマンドでこれを切り替えることが出来ます。
-s:<filename>
ftp.exe を実行したときに、最初に実行するコマンドが書かれたファイルを指定します。これにより ftp.exe を利用した一種のスクリプトのようなものを実行することが出来ます。
-a
FTP のデータ通信をバインドするときに、ローカルの機能を利用します。具体的には、ftp.exe がサーバーに送信する PORT コマンドで使うアドレスはすべて「0.0.0.0」になります。
-w:<buffer-size>
データ通信のバッファのサイズを指定します。指定しない場合、4096 が使用されます。
-A
サーバーに接続するときに匿名ユーザー「anonymous」で接続するようにします。パスワード(メールアドレスを表す)は「(ローカルコンピュータの)ログインユーザー名@コンピュータ名」になります。
<host>
FTP サーバー「<host>」に接続します。<host> は通常のホスト名かIPアドレスを指定します。「ftp://」は必要ありません。

解説

コマンドラインで FTP に接続するプログラムで、Windows に(ほとんど)標準で付いています。-s を利用しない場合はコマンドプロンプトのようにコマンドを手入力してサーバーとやり取りすることができます。(コマンドの一覧は ftp.exe 内で「help」と入力することで得ることができます。)

なお、このプログラムはWindows 95/98/Meではメッセージがすべて英語なので注意してください。

サンプル 1

ftp ftp.microsoft.com

FTP サーバー「ftp.microsoft.com」に接続します。これを実行するとユーザー名を尋ねられるので、通常は「anonymous」(匿名)と入力し、パスワードにメールアドレス(または空欄)を入力します。

サンプル 2

ftp -n myserver.net

myserver.net に接続しますが、ユーザー名を名乗りません。実際は入力状態になったら「user」コマンドを使ってユーザーを名乗る必要があります。

サンプル 3 (バッチファイル)

@echo off
echo open ftp.hogehoge.net > ftpscrpt.txt
echo user admin mypassword >> ftpscrpt.txt
echo lcd C:\LogsFile >> ftpscrpt.txt
echo cd /logs >> ftpscrpt.txt
echo mget *.log >> ftpscrpt.txt
echo bye >> ftpscrpt.txt
ftp -v -i -n -s:ftpscrpt.txt
del ftpscrpt.txt

echo コマンドと「>>」などを使って ftp.exe 用のスクリプトを作成して、それを使って ftp.exe を実行しています。なお、このサンプルでは FTP 接続に使うパスワードをそのまま書いているため、セキュリティ的には問題があります。