FFFTPとタスクスケジューラでファイルを自動アップロードする方法【コマンドライン対応】

FFFTPとWindowsのタスクスケジューラを組み合わせると、決まった日時にファイルを自動でサーバーへアップロードできます。本記事では、batファイルの作成からコマンドラインオプションの設定まで、専門知識がない方でも理解できるよう手順を詳しく解説します。

全体の流れ

  1. FFFTPのホスト設定とショートカットのコマンドライン設定
  2. batファイルの作成
  3. タスクスケジューラへの登録
  4. アップロードしたいファイルをローカルフォルダにセット

手順1:FFFTPの設定

まずFFFTPをインストールしておいてください。今回はFFFTPの「フォルダの同期機能」をコマンドラインから呼び出す設定を行います。

1-1:FFFTPのホスト設定

FFFTPを起動してホストの設定を行います。サーバー接続に必要な情報(ホスト名・ユーザー名・パスワードなど)を入力してください。

FFFTPのホスト設定画面

設定時に気をつけるポイントは2つです。

  • 「ホストの設定名」を控えておく:後でコマンドラインオプションに使用します。半角英数字推奨です。今回は仮に「test」とします。
  • 「ローカルの初期フォルダ」と「ホストの初期フォルダ」を一致させる:フォルダの同期機能はローカルとホストの内容を同一にします。指定を誤ると意図しないファイルがアップロードされたり、必要なファイルが削除されたりする危険があります。

変更ファイル以外を事前に統一しておく

ローカルに存在しないファイルがホストにある場合、ホスト側のファイルを削除しようとしてポップアップが表示され、タスクが止まってしまいます。事前にローカルとホストのフォルダ構成を完全に一致させておきましょう。

FFFTPでサーバー接続を確認している画面

1-2:FFFTPのショートカット作成

FFFTPを起動するショートカットを作成します。デスクトップなどに既存のショートカットがある場合はそれを使ってもかまいません。ない場合は以下の手順で作成します。

  1. 「Windowsキー+S」で検索窓を表示する
  2. 「ffftp」と入力して検索する
  3. 表示されたアイコンを右クリックし「ファイルの場所を開く」を選択する
  4. フォルダ内にある「FFFTPショートカット」をコピーする
  5. 手順1-1で設定したローカルフォルダ内にペーストする
FFFTPのショートカットアイコンをローカルフォルダに配置した状態

1-3:ショートカットのプロパティにコマンドラインオプションを追加する

作成したショートカットを右クリックして「プロパティ」を開きます。

FFFTPショートカットのプロパティ画面

「ショートカット」タブの「リンク先」を編集します。元の記述の末尾に半角スペースを空けて以下を追加します。

"C:\Program Files\ffftp\FFFTP.exe" -s "test" -m -f -q

各コマンドラインオプションの意味は以下のとおりです。

  • -s "ホスト名":接続するホストを指定する(例:-s “test”)
  • -m:接続後にフォルダの同期を実行する
  • -f:確認メッセージを非表示にする(自動化に必須)
  • -q:同期完了後にFFFTPを終了する

オプションは半角英数字で入力する

スペースやダブルクォーテーション「”」は半角で入力してください。全角が混入すると正常に動作しません。コピペする場合も特にご注意ください。

通常利用用のショートカットは別途作成する

今回のプロパティ編集は特定のショートカットだけに適用されます。通常どおりFFFTPを使いたい場合は、別途ショートカットを作成しておきましょう。

1-4:FFFTPの自動化動作確認

ここまでの設定が正しければ、ショートカットをダブルクリックするだけでFFFTPが起動・同期・終了まで自動で行われます。テスト環境を用意して必ず確認しておいてください。

手順2:batファイルの作成

タスクスケジューラからFFFTPショートカットを直接起動することはできません。そのため、ショートカットを呼び出すbat(バッチ)ファイルを作成します。テキストエディタがあれば誰でも作れます。

2-1:テキストエディタにコマンドを書き込む

手順1で作成したFFFTPショートカットと同じフォルダに、テキストエディタで新規ファイルを作成します。以下の2行を入力して保存してください(保存形式はtxtのままでOKです)。

cd 【フォルダのパス】
call 【FFFTPショートカットのファイル名】.lnk
  • cd:作業フォルダを指定するコマンド
  • call:指定したファイルを実行するコマンド

フォルダのパスを簡単に取得する方法

FFFTPショートカットアイコンを「Shift+右クリック」して「パスのコピー」を選択すると、パスを一瞬で取得できます。batファイルに貼り付ける際は、前後のダブルクォーテーションとファイル名部分を削除してください。

Shift+右クリックでパスのコピーをしている画面

ショートカットの拡張子「.lnk」について

Windowsのエクスプローラーでは拡張子を表示する設定にしていても、ショートカットの「.lnk」は表示されません。batファイル内に記述する際は必ず「.lnk」まで入力してください。

2-2:拡張子をtxtからbatに変更する

作成したテキストファイルを「名前の変更」で拡張子を「.txt」から「.bat」に変更します。拡張子が表示されていない場合はエクスプローラーの表示設定を変更してください。

2-3:batファイルの動作確認

batファイルをダブルクリックして動作確認します。手順1-4と同様にFFFTPが起動・同期・終了すれば正常です。

手順3:タスクスケジューラの設定

Windowsに標準搭載されているタスクスケジューラを使って、指定した日時にbatファイルを自動実行する設定を行います。Windows 10での手順ですが、他のバージョンでも大差ありません。

3-1:タスクスケジューラの起動とタスク作成

  1. 「Windowsキー+S」で検索窓を表示する
  2. 「タスクスケジューラ」と入力して起動する
  3. 「操作」>「タスクの作成」をクリックする
タスクスケジューラの操作メニューからタスクの作成を選んでいる画面

「全般」タブでタスク名を入力します(例:task_test)。その他の項目は変更不要です。

タスクスケジューラの全般タブでタスク名を入力している画面

「トリガー」タブで「新規」をクリックし、タスクを実行する日時を設定します。

タスクスケジューラのトリガー設定画面

「操作」タブで「新規」をクリックし、手順2で作成したbatファイルを「参照」から選択します。「開始(オプション)」には作業フォルダのパスを入力してください(「参照」欄に表示されるパスからファイル名を除き、末尾を「¥」で終わるようにします)。

タスクスケジューラの操作タブでbatファイルを指定している画面

設定が完了したら「OK」をクリックして保存します。

3-2:タスクスケジューラの動作確認

タスク一覧の「操作」カラムにある「実行」をクリックすると、設定した時刻を待たずに即時動作確認できます。

タスクスケジューラで実行ボタンをクリックしている画面

実際に設定した時刻どおりに起動するかどうかも、念のため確認しておくことをおすすめします。

手順4:アップロードするファイルをセットする

最後に、更新したいファイルをローカルフォルダに配置します。自動タスクが実行されるとホスト側のファイルが上書きされるので、元のファイルを残しておきたい場合は事前にバックアップを取ってください。

変更するファイル以外のフォルダ構成は、ローカルとホストで必ず一致させておきましょう。差異があると確認ポップアップが表示されてタスクが止まることがあります。

まとめ

FFFTPのコマンドラインオプション・batファイル・タスクスケジューラの3つを組み合わせることで、ファイルの自動アップロードが実現できます。設定のポイントをまとめます。

  • FFFTPショートカットのリンク先に -s "ホスト名" -m -f -q を追加する
  • batファイルで cd(フォルダ指定)と call(ショートカット実行)を記述する
  • タスクスケジューラの「操作」にbatファイルを登録し、起動フォルダも設定する
  • 事前にローカルとホストのフォルダ構成を完全に一致させておく
  • 本番稼働前に必ずテスト環境で動作確認する

なお、自動タスクはPCが起動していないと実行されません。PCを自動起動させたい場合は、BIOSの自動起動設定に関する記事も参考にしてください。

このテーマの関連記事はこちら