FTP

ブログじゃない方のWebサイトの更新,フリーソフト「FFFTP」を使っています.普段の利用では不自由感じませんが,番組改編期に声優情報を更新する際には不自由を感じます.

声優革命と痛い名前のWebページのデータはExcelで管理しており,そのExcelマクロで更新分のHTMLを生成するつくりにしています.FFFTPで更新分のHTMLをアップロードしようと,アップロード先のディレクトリを開くと,ディレクトリ情報を取得するのにだいぶ待たされるんです.声優2000人超に対応する2000件超のファイルが一つのフォルダに入っているためです.ただ,アップロードしたいファイルは判っているので,アップロード先ディレクトリの情報取得は不要なんです.不要ですが,それをOffにするスイッチを見つけられませんでした.

というところを改善するため,もうFTPコマンドを直接打ったらいいじゃないかと.試しに,日々の日記の更新のため,トップページ,カレンダーページ,日記本文だけをアップロードするコマンドを書きました.そして,それをFTPコマンドにオプション指定で渡すバッチコマンドも書きました.と,日記の更新,バッチファイル叩くだけで済みます.楽.もっと前からやっておけば良かったです.

ftp.txt
open (server) (port)
mhasac.html.xdomain.jp
(password)

lcd D:\Homepage
put top.htm

lcd D:\Homepage\diary\17
cd /diary/17
put cal07.htm
put diary07.htm

disconnect
quit
doftp.bat
ftp -i -s:ftp.txt

ただ,落とし穴が一つ.あまりに楽だったので,月を跨いでもうっかりこのバッチを叩くだけにしてしまっていました.と,コマンド内のファイル名が前月のままなので,肝心の当月のページが更新されない罠.コマンドがバッチ内に直接書けるなら,「%date~5,2%」で取得した月を埋め込むという技が考えられるんですけど.

ということでググッてみたら,その手があったか的な方法が紹介されていました.ずばり,FTPコマンドファイル自体をバッチファイルで作ってしまえと.なるほど.よし,今日からはこれで行こう.他のファイルの更新があるときはFFFTPを使わなきゃいけないってのだけは忘れないように.

doftp.bat
set YY=%date:~2,2%
set MM=%date:~5,2%

echo open (server) (port)>ftp.txt
echo mhasac.html.xdomain.jp>>ftp.txt
echo (password)>>ftp.txt

echo lcd D:\Homepage>>ftp.txt
echo put top.htm>>ftp.txt

echo lcd D:\Homepage\diary\%YY%>>ftp.txt
echo cd /diary/%YY%>>ftp.txt
echo put cal%MM%.htm>>ftp.txt
echo put diary%MM%.htm>>ftp.txt

echo disconnect>>ftp.txt
echo quit>>ftp.txt

ftp -i -s:ftp.txt
del ftp.txt

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です