コマンドプロンプト

FTP操作

当ページではftp.exeを用いたFTP通信の方法についてまとめています。WindowsでFTP通信をするとなるとFFFTPがオススメですが、実はFTP通信を行うためのツールであるftp.exeが標準搭載されています。使い勝手こそFFFTPを始めとするツールに劣りますが実用性に関しては十分です。

起動・終了

ftp.exeを起動するには実行ファイルをダブルクリックなどで直接立ち上げるか、コンソールからファイルパスを指定して起動させます。ただ、たいていの場合、最初からPATHが通っていますので簡単に立ち上げることができます。

::起動C:\Windows\System32\ftp.exeftp

終了させるときはウィンドウの閉じるボタンで閉じるか、あるいはftp.exeのコマンドであるbyeコマンドかquitコマンドを使用します。

!::終了byequit

ヘルプ

ヘルプを見るにはhelpコマンドを使用します。引数を指定しないでhelpコマンドを実行するとコマンド一覧が表示されます。コマンドを引数に指定すると詳細が表示されます。

!::コマンド一覧help!::コマンド詳細help コマンドhelp open

?記号でも同じことができます。?と引数の間には半角空白を入れます。

?? open

コマンドプロンプトのコマンドを呼び出す

ftp.exeを起動している途中でもコマンドプロンプトのコマンドを使用することができます。行頭に!記号を付け、コマンドを続けて入力します。

!コマンド 引数!ECHO Hello world.

セッションの開閉

セッションの開閉のために、いくつかのコマンドが用意されています。

セッションを開く

セッションを開くにはopenコマンドを使用します。引数にサーバー名を指定してください。ポート番号も指定できますが省略してもかまいません。

!::文法open サーバー名 ポート名!::例文open 127.0.0.1 21open foo.co.jp

あるいはftp.exeを実行するときに、引数でサーバー名・ポート名を渡しても同じ結果が得られます。

::文法ftp.exeのパス サーバー名 ポート名::例文ftp 127.0.0.1 21

セッションを閉じる

セッションを閉じるにはcloseコマンドかdisconnectコマンドを使用します。

closedisconnect

また、byeコマンド・quitコマンドを実行してftp.exeを閉じれば同時にセッションも切ることもできます。

セッション状態の確認

セッションの状態を確認するにはstatusコマンドを使用します。

status

カレントディレクトリの操作

ほとんどのFTPツールではリモート(サーバー)側とローカル(クライアント)側双方のカレントディレクトリを操作することができます。もちろん、ftp.exeにおいても双方の操作が可能です。

カレントディレクトリの確認

リモート側のカレントディレクトリを確認するにはpwdコマンドを使います。

pwd

ローカル側のカレントディレクトリを確認するにはlcdコマンドを使います。

lcd

カレントディレクトリの変更

リモート側のカレントディレクトリを変更するにはcdコマンドを使用します。階層間を区切る記号はコマンドプロンプトの\(バックスラッシュ・円)ではなく、/(スラッシュ)ですので注意してください。

!::文法cd ファイルパス!::例文cd Desktop/folder

ローカル側のカレントディレクトリを変更するにはlcdコマンドを使用します。引数を指定しないときはカレントディレクトリを表示します。こちらは階層間区切り文字に\(バックスラッシュ・円)を使います。

!::文法lcd ファイルパス!::例文lcd Desktop\folder

ディレクトリ・ファイルの一覧出力

リモート側のディレクトリ・ファイル一覧を出力するにはdirコマンドを使用します。

!::文法dir ファイルパス!::文法dirdir Desktop/folder

ローカル側のディレクトリ・ファイル一覧を出力するコマンドはftp.exeにありませんので、コマンドプロンプト側のDIRコマンドを呼び出します。

DIR Desktop\folder

送受信

ファイルを送信する場合はどちらも構文はほぼ共通で、コマンドの第1引数として送受信元ファイル、省略可能な第2引数として送信先ファイルを指定します。省略した場合はカレントディレクトリに送受信元ファイルと同名のファイルがコピーされます。指定するときはファイル名まで指定し、指定したファイル名でコピーされます。

送信にはappendコマンド・putコマンド・sendコマンドを、受信にはgetコマンドかrecvコマンドを使用します。

!::文法コマンド 送受信元ファイル 送受信先ファイル!::例文append test.txtput test.txt Desktop/test.txtget test.txtget Desktop\test.txt

ファイル操作

リモート側のファイルを操作するには次のコマンドを使用します。

削除

ファイルを削除するにはdeleteコマンドを使用します。

!::文法delete 削除するファイルパス!::例文delete folder/test.txt

レスポンスコード

FTP通信では処理を行ったタイミングなどでFTPサーバーから、レスポンスコードという数値が返ってきます。レスポンスコードは処理の結果、あるいはFTPサーバーの状態を意味し、処理の結果を知るのに必要になります。基本的には気にする必要はないですが想定した挙動をしないときはレスポンスコードを注意して見てみましょう。

425

FTPサーバーとのコネクションをオープンできない状態を意味します。コネクションが接続されていないという意味ではないようで、接続はできているがFTPサーバー側が命令を受け取れない、あるいはこちらから命令を送れないといった意味合いのようです。