ffftpとタスクスケジューラでhtmlファイルを自動アップロード[日時指定]
htmlファイルを自動で、しかも決まった日時にアップロードしたい時があります。
そんな時は、windowsの「タスクスケジューラ」とフリーソフトの「FFFTP」を使うと可能です。
また、bat(バッチ)ファイルの知識も必要とします。
本記事では、専門知識をお持ちでない方でも理解できるよう、出来る限り詳細にわかりやすく解説いたします。
手順1_FFFTPの設定
まず、フリーソフトのFFFTPはインストールしておいてください。
今回はFFFTPの「フォルダの同期機能」を利用します。
それでは1つずつ詳細な手順を解説します。
1-1_FFFTPのホストの設定
サーバー接続するために必要な情報を入力して下さい。
この際、気をつけるポイントは2つです。
1つめは、「ホストの設定名(T)」を控えておくこと。後々使います。
※半角英数字がベターではないかと思います。今回は仮に「test」とします。
2つめは「ローカルの初期フォルダ(L)」と「ホストの初期フォルダ(R)」を同じにしておくこと。FFFTPの「フォルダの同期機能」を使うと、ローカルとホストが同じ内容になります。
変更ファイル以外を事前に統一しておく
ローカルとホストのフォルダの統一は大切です。ここの指定を間違えると、最悪間違ったファイルがアップロードされ、必要なファイルが消失してしまうこともありえます。
また、ローカルに存在しないファイルがホストにある場合、ホスト側のファイルを削除する事となり、そのポップアップ表示によってタスクがストップしてしまいます。
上記を踏まえ、サーバにアクセスできることを確認して下さい。
1-2_FFFTPのショートカットアイコンの作成
FFFTPを起動させるショートカットを作成します。
すでにデスクトップなどにショートカットがある場合は、それを使って頂いて結構です。
無い方は下記を参考にショートカットを作って下さい。
- 「ウィンドウズマーク+S」で検索窓を表示。
- 「ffftp」と入力して検索。
- 表示されたアイコンで右クリックし、「ファイルの場所を開く」を選択。
- 表示フォルダ内にある「FFFTPショートカット」が既に存在しているのでコピーする。
- 「1-1_FFFTPのホストの設定」で設定したローカルフォルダ内にペーストする。(既にショートカットが存在していたケースでも、このフォルダに移動orコピペしておいて下さい)
1-3_FFFTPのショートカットアイコンのプロパティの編集
作成したショートカットを右クリックしてプロパティをクリックします。
ショートカットタブを選択し、リンク先項目を編集します。
元々の「”C:\Program Files\ffftp\FFFTP.exe”」の後ろに半角スペースを開けて「-s “test” -m -f -q」と追加入力します。
「適用」をクリックして、「OK」をクリックします。
結果、
“C:\Program Files\ffftp\FFFTP.exe” -s “test” -m -f -q
と、入力したことになります。
意味は以下を参照して下さい。
- -s “任意のホスト名(例/test)”:開きたいホストの指定
- -m:ホストへの接続と同期
- -f:確認メッセージの非表示
- -q:FFFTPの終了
オプションは半角英数字で明記する
今回追加したアルファベットはオプションと言われるものです。オプションは半角英数字で入力するようにして下さい。例えば、スペースやダブルクォーテーションマーク「”」などは、見落としがちな箇所なので、コピペなどで流用する場合には、特にご注意ください。
通常利用のFFFTPショートカットも作れる
今回のプロパティ編集は、一つのFFFTPショートカットだけに対する指示です。大元のFFFTPファイルには変更を加えておりませんので、通常通り使用する場合は、別途FFFTPショートカットを作成しておくと便利でしょう。
1-4_FFFTPの自動化の動作確認
ここまでの作業を正しく行うと、FFFTPショートカットをダブルクリックするだけで、FFFTPを起動しローカルとホストの同期を行うことができます。
テスト環境を作ってからご確認下さい。
手順2_batファイルの用意
次に、手順1で作ったFFFTPショートカットを起動させるためのbat(バッチ)ファイルを作ります。
batファイルはテキストエディタがあれば誰にでも作れます。
それでは、詳細な手順を見ていきます。
2-1_テキストエディタへコマンドを書き込む
手順1で作成したFFFTPショートカットと同じフォルダに、テキストエディタで新規作成して下さい。
下記コマンドを入力の上、保存して下さい。
保存形式はテキストファイル(txt)で結構です。
cd 【フォルダのパス】
call 【FFFTPショートカットのファイル名】.lnk
コマンドの意味は下記を参照して下さい。それぞれコマンドのあとには半角スペースを空けます。
- cd:作業フォルダを指定する
- call:ファイルを実行する
フォルダのパスを簡単に取得する方法
フォルダのパスはPC環境によって異なります。いちいち手入力していては手間なのでショートカットを使うと良いでしょう。
今回は、手順1で作成したFFFTPショートカットアイコンを「Shift+右クリック」して表示される、「パスのコピー」をクリックします。
これでフォルダを含むパスを一瞬でコピーできます。
batファイルで使う際には、最初と最後のダブルクオーテーションは不要なので削除して下さい。
また、この方法ではファイル名も一緒に取得できてしまいますが、パスを指定する箇所には不要なので削除して下さい。
ショートカットファイルにはlnk拡張子が隠れいている
エクスプローラの設定で、拡張子を表示する設定にしていても、ショートカットの拡張子lnkは表示されません。
ですが、batファイルを作成する時には拡張子まで入力が必要なので、忘れずに記入して下さい。
2-2_txtからbatへファイルの拡張子を変更する
作成したテキストファイルを保存したら「名前の変更」をします。
拡張子をtxtからbatへ変更して下さい。
※拡張子が表示されていない設定の場合は、エクスプローラの設定を変更して下さい。
2-3_batファイルの動作確認
作成したバッチファイルをダブルクリックして動作確認を行います。
手順1で確認したFFFTPショートカットの確認時と同様に、FFFTPが起動・終了したら正常です。
手順3_タスクスケジューラの設定
最後にwindows搭載のタスクスケジューラの設定を行います。
タスクスケジューラの設定をすることで、特定の日時に自動タスクを起動することが出来ます。
また、今回の実証はwindows10によるものですが、他のバージョンでも大差はありませんので参考として下さい。
3-1_タスクスケジューラの起動
下記の手順でタスクスケジューラを起動させます。
- 「ウィンドウズマーク+S」で検索窓を表示。
- 「タスクスケジューラ」と入力して検索。
- 表示されたアイコンをクリックする。
※頻繁に使う場合は、右クリックして「タスクバーにピン留めする」などを利用すると便利です。
スケジューラが起動したら、「操作」>「タスクの作成」をクリックします。
次に、「全般」タブにて、名前を決めます。仮に「task_test」とします。
必要なら説明も入力します。他は変更しません。
「トリガー」タブにて、「新規」ボタンをクリックします。
「新しいトリガー」ウィンドウにてタスクが実行される日時を設定します。
「操作」タブにて、「新規」ボタンをクリックします。
「新しい操作」ウィンドウにて、行う操作を設定します。
今回は、手順2で作成したbatファイルを起動させます。「参照」からbatファイルを選択して下さい。
「開始(オプション)」には、作業フォルダのパスを入力して下さい。
※フォルダパスは、「参照」に表示されるのでそれをコピペすればOKです。その際、ファイル名を削除することと、末尾を「¥(エンマーク)」で終わるようにして下さい。
以上を設定したら、「OK」をクリックして設定を終了して下さい。
3-2_タスクスケジューラの動作確認
タスクスケジューラの場合、「操作」カラムの「実行」をクリックすると、すぐに動作確認できます。
念の為、時間通りに起動するかどうかもチェックすることをおすすめします。
手順4_htmlファイルのセット
最後に、更新したいhtmlファイルをローカルフォルダに置きます。
自動タスクを実行するとhtmlファイルは、ホスト側で上書きされるので、変更前のファイルをとっておきたい場合はバックアップを取って下さい。
また、重複になりますが変更ファイル以外のフォルダ構成は、ローカル側・ホスト側ともに共通にしておきましょう。
差異があると、確認文言の表示などでタスクが止まることがあります。
以上で、作業は完了です。
◆まとめ_テストが大事
自動処理を組む時は、何より事前のテストが大切です。
人が見ていないところで勝手にPCを動かすのですから、ミスがあった場合の対処は後手になります。
そのことを肝に銘じて作業を進めて下さい。
また、今回の作業はPCが起動していないと成立しません。
つけっぱなしにしておいてもいいですが、それが嫌という方には、自動でPCを起動させる方法もあります。下記記事をご参照下さい。