【Windows】FTPで自動でアップロード・ダウンロードするバッチファイルの作り方


FTPを使ってホームページなどをアップロードするとき、FTPクライアントソフトを使って、マウスでファイルを選択してアップロードする、といった使い方が多いと思いますが、マウスでファイルを選択するのが面倒なとき、いつも同じファイルを更新するので自動にしたい、というニーズはあると思います。

と、言うわけで、Windowsのバッチファイルで簡単にFTPでファイルを自動でアップロードやダウンロードを行うスクリプトを作ってみましょう。

※IEのみボタンが動作します


FTPでファイル転送を行う簡単なバッチファイル(put)

今回は、FTPでパソコン→FTPサーバへファイルを転送する(put) サンプルを記載します。

<前提条件>

FTPサーバ名:XXX.YYY.ne.jp

ユーザID:●●●●●●

パスワード:○○○○○○

動き:パソコン→FTPサーバへファイルを転送する

FTPサーバのデータ転送先フォルダ名: public_html/aaa

パソコンにある、FTPサーバに転送したいファイル名: c:\www\index.html と、c:\www\index2.html 

2つのファイルを作成します。

■バッチファイル  c:\www\ftpcopy.bat

echo 'FTP転送を開始します'
pause
ftp -s:ftp_bat.txt
pause

■バッチファイルが読み込むファイル c:\www\ftp_bat.txt 

open XXX.YYY.ne.jp (FTPサーバアドレス)
●●●●●● (ログインユーザID)
○○○○○○
 (ログインパスワード)
bin 
(ファイルを転送するのでバイナリーモードに変更)
prompt 
(随時発生する y/n の問い合わせ応答を省略し、 yを押したことにします)

cd public_html
 (FTPサーバのディレクトリを public_html へ移動)
cd aaa
 (更にディレクトリ移動)

put c:\www\index.html
  (c:\www\index.html ファイルをFTPサーバの ~/public_html/aaa にコピーします)
put c:\www\index2.html
 (c:\www\index2.html ファイルをFTPサーバの ~/public_html/aaa にコピーします)

bye

FTPでファイル転送を行う簡単なバッチファイル(get)

次は、FTPでFTPサーバからパソコン側へファイルを転送する(get) サンプルを記載します。

<前提条件>

FTPサーバ名:XXX.YYY.ne.jp

ユーザID:●●●●●●

パスワード:○○○○○○

動き:FTPサーバ→パソコンへファイルを転送する

FTPサーバの転送元フォルダ名: public_html/datas にある data100.dat  と data101.dat

転送先フォルダ名: c:\www\datas

■バッチファイル  c:\www\ftpcopy.bat は、先ほどのままです。

■バッチファイルが読み込むファイル c:\www\ftp_bat.txt 

open XXX.YYY.ne.jp (FTPサーバアドレス)
●●●●●● (ログインユーザID)
○○○○○○
 (ログインパスワード)
bin 
(ファイルを転送するのでバイナリーモードに変更)
prompt 
(随時発生する y/n の問い合わせ応答を省略し、 yを押したことにします)

cd public_html
 (FTPサーバのディレクトリを public_html へ移動)
cd datas
(FTPサーバ ~/public_html/datas というディレクトリに移動)

get data100.dat c:\www\data\data100.dat (FTPサーバからパソコンへコピー)
get data101.dat c:\www\data\data101.dat (FTPサーバからパソコンへコピー)

bye


FTPでファイル転送を行う簡単なバッチファイル(mput)

次は、FTPでパソコンからFTPサーバへファイルをまとめて転送する(mput) サンプルを記載します。

<前提条件>

FTPサーバ名:XXX.YYY.ne.jp

ユーザID:●●●●●●

パスワード:○○○○○○

動き:パソコン→FTPサーバへファイルを転送する

転送ファイル名: c:\www\datas\data100.dat〜data999.dat

FTPサーバの転送先フォルダ名: public_html/datas

■バッチファイル  c:\www\ftpcopy.bat は、先ほどのままです。

■バッチファイルが読み込むファイル c:\www\ftp_bat.txt 

open XXX.YYY.ne.jp (FTPサーバアドレス)
●●●●●● (ログインユーザID)
○○○○○○
 (ログインパスワード)
bin 
(ファイルを転送するのでバイナリーモードに変更)
prompt 
(随時発生する y/n の問い合わせ応答を省略し、 yを押したことにします)

cd public_html
 (FTPサーバのディレクトリを public_html へ移動)
cd datas
(FTPサーバ ~/public_html/datas というディレクトリに移動)

mput c:\www\datas\*.dat (パソコンからFTPサーバへまとめてコピー)

bye


FTPでファイル転送を行う簡単なバッチファイル(mget)

次は、FTPでパソコンからFTPサーバへファイルをまとめて転送する(mput) サンプルを記載します。

<前提条件>

FTPサーバ名:XXX.YYY.ne.jp

ユーザID:●●●●●●

パスワード:○○○○○○

動き:FTPサーバ→パソコンへファイルを転送する

FTPサーバの転送元フォルダ名: public_html/datas にある すべてのファイル

転送先フォルダ名: c:\www\aaa

■バッチファイル c:\www\ftpcopy.bat は、保存先フォルダを指定するため、ちょっと変えます。

echo 'FTP転送を開始します'
pause
cd c:\www\aaa (パソコンの保存先フォルダに移動します)
ftp -s:c:\www\ftp_bat.txt (パスが変わったので、フルパスで読込みファイル名を指定します)
pause

■バッチファイルが読み込むファイル  c:\www\ftp_bat.txt 

open XXX.YYY.ne.jp (FTPサーバアドレス)
●●●●●● (ログインユーザID)
○○○○○○
 (ログインパスワード)
bin 
(ファイルを転送するのでバイナリーモードに変更)
prompt 
(随時発生する y/n の問い合わせ応答を省略し、 yを押したことにします)

cd public_html
 (FTPサーバのディレクトリを public_html へ移動)
cd datas
(FTPサーバ ~/public_html/datas というディレクトリに移動)

mget *.* (FTPサーバからパソコンへまとめてコピー)

bye


ちなみに、実行結果はこんな感じとなします。
(バッチファイルをダブルクリックするとどんな環境でも動くと思いますが・・・)

動かなければ、コマンドプロンプトから実行するなどをしてみてください。⇒googleでの検索

C:\www>echo 'FTP転送を開始します'
'FTP転送を開始します'

C:\www>
pause
続行するには何かキーを押してください . . .

C:\www>
cd c:\www\aaa

C:\www\aaa>
ftp -s:c:\www\ftp_bat.txt
ftp> open XXX.YYY.ne.jp
Connected to XXX.YYY.ne.jp.
220 XXX.YYY.ne.jp FTP server ready.
User (XXX.YYY.ne.jp:(none)):
331 Password required for ●●●●●●.

230-/************************************************************************
230- Welcome to XXX.YYY.ne.jp.
230- You can upload your contents into the /public_html directory only.
230- Please change directory to the /public_html and upload your contents.
230-
230- current disk usage : 23225 Kbyte
230- disk limit : 100000 Kbyte
230-*************************************************************************/
230-
230 User ●●●●●● logged in. Access restrictions apply.
ftp>
bin
200 Type set to I.
ftp>
prompt
Interactive mode Off .
ftp>
ftp>
cd public_html
250 CWD command successful.
ftp>
cd datas
250 CWD command successful.
ftp>
ftp>
mget *.*
200 Type set to I.
200 PORT command successful.
150 Opening BINARY mode data connection for index.html (499 bytes).
226 Transfer complete.
ftp: 499 bytes received in 0.00Seconds 499000.00Kbytes/sec.
200 PORT command successful.
150 Opening BINARY mode data connection for title.gif (5315 bytes).
226 Transfer complete.
ftp: 5315 bytes received in 0.00Seconds 5315000.00Kbytes/sec.
200 PORT command successful.
150 Opening BINARY mode data connection for title_s.gif (2776 bytes).
226 Transfer complete.
ftp: 2776 bytes received in 0.00Seconds 2776000.00Kbytes/sec.
ftp>
ftp>
bye
221-You have transferred 8590 bytes in 3 files.

C:\www\aaa>
pause
続行するには何かキーを押してください . . .

◆最新のPCの情報です。ほんと、安くなったものです・・・。安いのに性能も良くて、正直、欲しいです・・・。ちなみに我が家のデスクトップのメインマシンより性能が良いので、ノートPCをメインマシンにすると節電にもなって一石二鳥かもしれないです。

デル株式会社 HP Directplus オンラインストア 


◆パソコンを使っていると体が疲れてしまいませんか・・・ ちょっと旅行に出かけてみましょう!

ホテルに直接予約すると料金が高かったり満室であったりします。そんなときは楽天トラベルなどの予約サイトから予約をすると、空室が結構あったり、安く予約できたりします。適宜活用してください。

旅行予約サイトへのリンクはこちら