For Version 1.21
copyright(c) SIGNAL9, 2006,2007,2008
これは何? | |||||||||
バッチファイルでの利用を想定したFTP, HTTP クライアントソフトです。
ftpは、古いプロトコルとはいえまだまだ現役です。
| |||||||||
動作環境 | |||||||||
本ソフトは以下の環境で開発・動作確認を行いました。 この為、動作環境もこれに準じます。 *Microsoft(R)日本語WindowsXP Pro (SP2) サーバ側はIIS5.0でしか検証しておりません。 特にhttp系は、テストが不十分です。 PUT/POSTの使用に当たっては十分な検証をお願いします(^^;)。 | |||||||||
インストール | |||||||||
コマンドライン(いわゆるDOS窓)で動かすプログラムですので、適当なディレクトリにbattp.exeをコピーしてください。サーチパスの通ったディレクトリだと便利です。 アンインストールする場合は、battp.exeを削除してください。 | |||||||||
実行 | |||||||||
コマンドプロンプトからbattp.exeを、動作を指定するINIファイルを指定して、実行します。 INIファイル名が省略された場合、battp.exeと同じディレクトリにある、battp.iniを読み込みます。 どちらの方法でもINIファイルが読み込めない場合にはエラーにします。 | |||||||||
動き方 | |||||||||
INIファイルのセクションごとに、上から下へ順番に実行します。 また、1ファイル毎に処理します。ある種のFTP/HTTPクライアントのように、コネクションを複数使って複数のファイルをいっぺんにやり取りすることはしません。 | |||||||||
ERRORLEVEL | |||||||||
INIファイル内に複数のセクションを記述した場合、ERRORLEVELをセクションごとにリセットします。この場合、ERRORLEVELは最後に処理しセクションの結果となります。ERRLRLEVELで処理分岐を行いたい場合には、INIファイルは単一のセクションとすることをお勧めします。 正常終了した場合、ERRORLEVELに0を返します。 ERRORLEVEL=1は通信上のエラーやサーバ側の異常を示します。 ERRORLEVEL=2はローカル側の異常を示します。 エラーの場合は標準出力に詳細なエラー内容を表示します。
| |||||||||
著作権・使用上の条件 | |||||||||
本ドキュメントとそれに付随する一切のドキュメント及び実行プログラム(以下本ソフトウェアと略す)の著作権は、作者である SIGNAL9(以下作者と略す)が保有します。 本ソフトウェアの使用により発生した、いかなる損害に対しても作者は責任を負いません。 本ソフトウェアの改良・サポートの義務を作者は負いません。 上記条件に同意し、順守頂ける限り、無償で利用して頂いてかまいません。 | |||||||||
改訂履歴 | |||||||||
|
先頭に[]で括ったセクションの名前を書き、そこから以下のような項目で通信条件を記述します。セクション名はひとつのINIファイルの中ではユニークでなければなりません。またセクション名に漢字は使えません。
具体的な書き方は添付のサンプルINIファイルをご覧下さい。
共通パラメータ | |||||||||||||||||||
Mode |
動作モード。FTPGET・FTPPUT・HTTPGET・HTTPPUT・HTTPPOSTFILEのいずれか。 デフォルトはFTPGET。
|
||||||||||||||||||
Target | 通信先。FTPの場合はサーバ名(かIPアドレス)。HTTPの場合はURL。 | ||||||||||||||||||
Timeout | TCP/IPタイムアウト。ミリ秒(1000分の1秒)であることに注意(秒と勘違いすると、トンデモなく短い時間で接続が切れることになります)。デフォルトは60000(60秒)。 | ||||||||||||||||||
ProxyHost | プロクシのDNS名かIPアドレス | ||||||||||||||||||
ProxyPort | プロクシのポート(デフォルト:FTPの場合は21、HTTPは80) | ||||||||||||||||||
ProxyUserName | Proxyのユーザ名。 | ||||||||||||||||||
ProxyPassword | Proxyのパスワード。 | ||||||||||||||||||
DeleteMode | 送信元ファイルを削除するか(TRUE/FALSE)。デフォルトはFALSE。 Mode=FTPGETの場合、ftpサーバ側のファイルを削除します。 |
||||||||||||||||||
TouchDateMode | GET時に日付を元ファイルにあわせるか(TRUE/FALSE) デフォルトはTRUE。PUT時はこの項目は使用できません。 |
||||||||||||||||||
RemotePath | リモートのファイルパス。FTPGET時はファイル名のワイルドカード使用可能 (ディレクトリのワイルドカードは不可) 2008/05/08:FTPPUT時のみ、本パラメータに # を指定すると、CWD(Chage Work Directory)を行わない(つまり書き込み先のディレクトリの有無がチェックされないことに注意してください)。 |
||||||||||||||||||
LocalPath | ローカルのファイルパス。FTPPUT時にはファイル名のワイルドカード使用可能 (ディレクトリのワイルドカードは不可) |
||||||||||||||||||
UserName | Targetのユーザ名。 基本認証のみ。 | ||||||||||||||||||
Password | Targetのパスワード。基本認証のみ。 平文でしか書けません。 |
||||||||||||||||||
TargetPort | 通信ポート。FTPの場合デフォルトは21、HTTPは80 | ||||||||||||||||||
FTP専用パラメータ | |||||||||||||||||||
ProxyMode | FTPのプロクシの場合の認証方式。(0〜8のいずれか)
|
||||||||||||||||||
FtpBinaryMode | FTPでバイナリモードを使うか(TRUE/FALSE)。デフォルトはTRUE。 | ||||||||||||||||||
FtpPassiveMode | FTPでPASVモードを使うか(TRUE/FALSE)。デフォルトはTRUE。 | ||||||||||||||||||
HTTP専用パラメータ | |||||||||||||||||||
HttpSaveHeader | HTTPのヘッダー情報をセーブするか(TRUE/FALSE)。デフォルトはFALSE。 TRUEの場合、送信ファイルと同じディレクトリに、拡張子'.TXT'を付加してHTTPのリザルトを格納する。 |
||||||||||||||||||
HttpProtocol | HTTPのプロトコルバージョン。1.0 か 1.1 を指定。デフォルトは1.1。 | ||||||||||||||||||
HttpKeepAlive | HTTP 1.1 のKeepAliveを使うか(TRUE/FALSE)。デフォルトはFALSE。 | ||||||||||||||||||
HttpNoCache | GETのとき、クライアントからキャッシュ不可ヘッダを付与するか(TRUE/FALSE)。デフォルトはTRUE(付与する)。 尚、HttpProtocolが1.0の場合は Pragma: no-cache を、1.1の場合は Cache-Control: no-cash を付与してリクエストする。 HTTP PUT/POSTでは本パラメータは無視する。 |
||||||||||||||||||
HTTPFieldName | HTTPPOSTFILE のとき、本体エレメントのフィールド名を指定します。省略時は POSTFILE 。 ようするに、CGI側で「ファイル名」と見なすフィールド; <INPUT TYPE=file NAME="file1"> の、file1 のこと。 |
複数セクションで連続して実行する例 | |
; セクション名。ダブってなければ適当でOK。漢字不可。 [Server1] ; 動作モード。 FTPGET / FTPPUT / HTTPGET / HTTPPUT / HTTPPOSTFILE Mode=FTPGET ; TCP/IP タイムアウト ミリ秒で指定 デフォルト=60000=60秒 Timeout=30000 ;通信先ftpサーバー。IPアドレスかサーバ名で指定してください。 Target=myftp.server.com ; 通信ポート。FTPでは通常21です TargetPort=21 ;ユーザ名。 UserName=anonymous ;パスワード。平文しか書けませんのでセキュリティには注意。 Password=foo@battp ;バイナリモード True/False デフォルトはTrue FtpBinaryMode=True ;パッシブモード True/False デフォルトはFalse FtpPassiveMode=False ;ファイル削除モード。True/False デフォルトはFalse。Mode=FTPGETの場合、ftpサーバ側のファイルを削除します。 DeleteMode=True ; 日付修正モード。 True/False デフォルトはFalse。 ; Mode=FTPGETの場合、受信したファイルの日付をftpサーバ側のファイル日付と同じにします。 ; ModeE=PUTの場合、本項目は無視。 TouchDateMode=True ;リモート(ftpサーバ側)のファイル。GET時にはワイルドカード指定可能。 RemotePath=/TEST/TEST/*.* ;ローカル(このプログラムが動いているパソコン)側の書き込み先ディレクトリ。PUT時にはワイルドカード指定可能。 LocalPath=.\TEST [Server2] ; PUTの場合。 Mode=FTPPUT Target=my.ftp.server FtpTargetPort=21 UserName=Administrator Password=HimitsuNoPassWord FtpBinaryMode=True FtpPassiveMode=False DeleteMode=True RemotePath=/TEST/TEST ; 2008/05/08 以下のように # を指定するとCWDしない。 ;RemotePath=# LocalPath=.\*.TXT [Server3] Mode=HTTPGET Target=http://www.yahoo.co.jp/ LocalPath=.\ ProxyHost=my.proxy.server ProxyPort=8080 HTTPSaveHeader=True HttpNoCache=True | |
FTP Proxy (FTPファイアウォール)超え | |
[Server1] Mode=FTPGET ; 例えばベクター相手に、単純なOPEN target→Target USER→PASS→ACCT ; するようなftp proxyの場合 Target=hp.vector.co.jp UserName=VA012345 Password=MyPassWord LocalPath=.\ RemotePath=/index.htm ProxyHost=my.proxy.server ProxyPort=8021 ProxyMode=4 | |
HTTPPOSTFILE のサンプル | |
[Server1] Mode=HTTPPOSTFILE ; 受信用のCGIのURLを指定する。 Target=http://www.foo.com/POSTPUT/fileup.cgi LocalPath=.\TEST\*.* ProxyHost=my.proxy.com ProxyPort=8000 ; HTTPFieldNameは INPUT TYPE=file NAME="file1" の、file1 のこと。 HTTPFieldName=file1 HTTPSaveHeader=False DeleteMode=False | |
HTTP PUT のサンプル | |
[Server1] Mode=HTTPPUT ; ターゲットは必ずディレクトリ(仮想パス)であること。CGIや ; 文書ファイルを指定してはならない。最終文字が / で終わって ; いない場合には / を付与してディレクトリと見なします。 Target=http://www.foo.com/POSTPUT/ LocalPath=.\TEST\*.* ProxyHost=my.proxy.com ProxyPort=8080 HTTPSaveHeader=False DeleteMode=False |