Windows10

Windows

【Windows10】.batファイルからFTPしてファイルをダウンロードする方法

「NextFTP」や「ffftp」などのFTPクライアントソフトを起動し、対象のファイルをダウンロードする、という手順を毎日踏むのが面倒くさくなってきたので、ダブルクリックしたらFTPコマンドで指定のディレクトリに指定のファイルをダウンロードするという .bat ファイルを作成してみたので備忘録を兼ねてご紹介します。

.batファイルを作成するなんて、MS-DOSを使っていた専門学校時代以来久しぶりですわ(笑)

ターミナルでFTPコマンドを使用する

.batファイルを作る前にまず、ターミナル(DOS窓)からFTPコマンドを使ってファイルをダウンロードできるかをテストしてみます。
これが出来ない場合は.batファイルを作っても意味ないですからね。

大体、以下のようにすれば出来ると思います。
ちなみに私の場合は、室内にあるUNIXサーバのファイルに対してアクセスする仕様となっております。

↑ ftpを起動し、openコマンドで接続先を指定。
cdでディレクトリを移動します。

↑ UNIXのコマンドである ls -al でファイル一覧を表示。
MS-DOSの dir コマンドは残念ながら効きませんでした。
今回は「system_20180414.sql.tar.gz」をダウンロードします。

↑ lcd(える・しー・でぃー)コマンドで、ダウンロードしたいパス、ディレクトリ(フォルダ)を指定。

↑ getコマンドでファイルを指定フォルダへダウンロードします。室内サーバなので2秒で完了。爆速。

↑ byeでFTPを終了。

.batファイルを作成する

以上を踏まえて、.batファイルを作成したいと思います。

.batファイルと 内容が空の.txt、2種類のファイルを用意

実行用の.batファイルと、ログファイル用の空テキストの2つを用意します。
.batファイル、空の.txtファイルの名前は任意で構いません。
今回は dl.bat、getftp.txt とします。

dl.batは以下のように書けば、大体大丈夫だと思います。

remから始まる行は .batファイルに書いているコメントです。
「←★」はこのポスト用の解説用コメントです。実際のbatファイルには書かないので注意。

ターミナルでは年月日を別々に取得できない(らしい)ので、date で取得した 20180414 の様な文字列を分解して YYYY, MM, DD に代入します。(面倒)

あとは、先にテストしたコマンドどおりの動きを書けば問題ありません。

.batファイルを起動する

.batファイルをダブルクリックすれば実行されます。

↑ 実行中の様子
「<<< FTP実行中 >>>」がecho されています。

結果

↑ ダウンロードされたファイルとログファイルが増えて、ファイルが4つになりました。

20180414ftplog.txt の様な実行日がファイル名に入ったログファイルが新規作成され、用意した空ファイル(getftp.txt)にはログファイルと同内容が書かれています。

ログファイルは新規に作成されますが、getftp.txt は実行するたびに上書きされる仕様としています。

あとはデスクトップにショートカットを作成するなり、スタートアップに登録するなどして、指定ファイルを(できるだけ少ない手順で)ダウンロード出来るようにすれば完成です。

参考文献

FTPコマンド一覧
http://sasuke.main.jp/ftpcommand.html

-Windows
-, , , ,