battp.exe : バッチ処理専用のftp/httpクライアント

------------------------ 2008/05/08 13:00
利用者の方からの御要望に基づき、FTPPUT時にCWD( Change Work Directory)しないオプションを追加。
1.21βとして置いておきますが、積極的理由が無いのなら正式公開版をお使い下さい。

------------------------ 2006/09/12 09:00
Vectorで正式公開。プログラムは1.2βと変わっていません。マニュアルだけhtmlで整形。

------------------------ 2006/05/24 13:03

battp.exe Ver1.2β

Ver1.2βに更新した。

HTTP PUT と HTTP POST をサポート…とはいっても暫定なので、仕様とコードに迷いが見られる(笑)

------------------------ 2006/03/24 14:03
・Windows2000やXPのコマンドライン用のプログラム(DOS窓で動く)
・エラーが起きたらERRORLEVELを返す(そうでないとバッチファイル中でエラー分岐できない)
・スクリプトとかで動作指定しないで、引数かファイルでパラメータを与えられる

そういうソフトはないものかと探してみたら、これが意外と見当たらない。まあ探し方が悪いのだろうが、アレコレ探しまくるくらいなら作っちゃった方が早いか、ということで手をつけてみた。

まあ、Windows付属のftpクライアントの簡易版ってとこだ。例によって需要は無かろうが、気が向いたらVectorに正式登録するかも。





======================================================================
battp
batch mode ftp/http
copyright(c) SIGNAL9, 2006,2008
All Rights Reserved.
Ver 1.21
======================================================================
■これは何?
バッチファイルでの利用を想定したFTP, HTTP クライアントソフトです。

ftpは、古いプロトコルとはいえまだまだ現役です。

作者も様々な局面で利用しますが、意外と見当たらないのは、「いつも
同じファイルを繰り返しGETしたりPUTしたりする」ようなものでした。

で、それがコレです。

「Windows付属のftpコマンドでいいじゃん?」

確かにそうなのですが、アレだと、いちいちスクリプトファイルにして…
とかってメンドくさくないですか? 特に通信エラー起こしたときの
判定方法とか。
また、よくあるGUI系のプログラムだとスケジュール 起動したい時とか
けっこう面倒だと思いません?

思わない…という人には無用のシロモノですので、さようなら(笑)

もともと、あるシステムの一部として、サーバで生成したファイルを、
どんどんクライアントPCに取り込 むという処理の為に作ったコマンド
プログラムです。

・INIファイルの設定に従って、ファイルをGET/PUTします。
逆に言うとGET/PUTしかできません。

・ワイルドカード指定による複数ファイルの転送が可能です。
*ディレクトリの転送はできません。

・送信終了後に元ファイル(GETのときはサーバファイル、PUTのときは
クライアントファイル)を自動的に削除できます。

Ver1.2 から HTTP GET ・ PUT ・ POST を追加しました。

・HTTP GETは拙作の httpget.exe 相当です。ただし、アレと違ってwininet
 は使用しておりません。

・HTTP PUT は 書き込み権のある HTTP 1.1 サーバ相手にしか使えません。

・HTTP POSTはファイル1個 だけを受信するCGIプログラム相手にしか使え
 ません。

■動作環境
本ソフトは以下の環境で開発・動作確認を行いました。
この為、動作環境もこれに準じます。

*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ファイルの書き方

先頭に[]で括った通信グループの名前を書き、そこから以下のような
項目で通信条件を記述します。
具体的な書き方は添付のサンプルINIファイルをご覧下さい。

******** 共通パラメータ

Mode 動作モード。FTPGET・FTPPUT・HTTPGET・HTTPPUT・HTTPPOSTFILE
のいずれか。デフォルトはFTPGET。

FTPGET : FTP の GET を行う。

FTPPUT : FTP の PUT を行う。

HTTPGET : HTTP の GET を行う。

HTTPPUT : HTTP の PUT を行う。

HTTPPOSTFILE : multipart/form-data で指定したファイルのスト
リームを送信する。受信用のCGIプログラムが必要。

Target 通信先。FTPの場合はサーバ名(かIPアドレス)。HTTPの場合はURL。

Timeout TCP/IPタイムアウト。ミリ秒(1000分の1秒)であることに注意
(秒と勘違いすると、トンデモなく短い時間で接続が切れるこ
とになります)。デフォルトは60000(60秒)

ProxyHost プロクシの名前(かIPアドレス)
ProxyPort プロクシのポート(デフォルト:FTPの場合は21、HTTPは80)

DeleteMode 元ファイルを削除するか(TRUE/FALSE)。
デフォルトはFALSE。
TouchDateMode GET時に日付を元ファイルにあわせるか(TRUE/FALSE)
デフォルトはTRUE。PUT時はこの項目は使用できません。

RemotePath リモートのファイルパス。FTPGET時はファイル名のワイル
ドカード使用可能(ディレクトリのワイルドカードは不可)
FTPPUTの時のみ # を指定すると接続した時のディレクトリ
をそのまま使う(=CWDコマンドを発行しない)
LocalPath ローカルのファイルパス。FTPPUT時にはファイル名のワイ
ルドカード使用可能(ディレクトリのワイルドカードは不可)

UserName Targetのユーザ名。 基本認証のみ。

Password Targetのパスワード。基本認証のみ。

TargetPort 通信ポート。FTPの場合デフォルトは21、HTTPは80

******** FTP専用パラメータ

ProxyMode FTPのプロクシの場合の認証方式。(0~8のいずれか)
0 : Target USER→PASS→ACCT
1 : Proxy認証→SITE→Target USER→PASS→ACCT
2 : Proxy認証→USER @→PASS→ACCT
3 : Proxy認証→Target USER→PASS→ACCT
4 : OPEN →Target USER→PASS→ACCT
5 : USER @→PASS→ACCT
6 : USER @→Target USER→PASS→ACCT
7 : USER @ @
Target USER→PASS→ACCT
8 : USER @@
PASS @→ACCT

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 を付与してリ
クエストする。
PUT/POSTでは無視します。

HTTPFieldName HTTPPOSTFILE のとき、本体エレメントのフィールド名
を指定します。省略時は POSTFILE 。
ようするに、CGI側で「ファイル名」と見なすフィールド;
<INPUT TYPE=file NAME="file1"> の、file1 のこと。

■動き方
[]で括った通信グループの名前ごとに、INIファイルの上から下へ順番に実
行します。
また、1ファイルごとに転送します。ある種のFTP/HTTPクライアントのよ
うに、コネクションを複数使って複数のファイルをいっぺんにやり取りする
ことはしません。

■著作権・使用・配布上の条件
本ドキュメントとそれに付随する一切のドキュメント及び実行プログラム
(以下本ソフトウェアと略す)の著作権は、作者である SIGNAL9(以下作
者と略す)が保有します。

本ソフトウェアの使用により発生した、いかなる損害に対しても作者は責
任を負いません。

本ソフトウェアの改良・サポートの義務を作者は負いません。

本ソフトウェアはベータテスト版であり、配布・転載は行わないで下さい。

■履歴
2006/03/03 Ver 1.0.1β
2006/05/23 Ver 1.2.0β HTTP PUT , POSTFILE 追加
2008/05/08 Ver 1.2.1β FTPPUT時にRemotePathでCWD無視文字を設定

[PR]
by SIGNAL-9 | 2006-03-24 14:03 | 拙作ソフトウェア | Comments(36)
Commented by ichanten at 2006-05-31 13:42
battpへのHTTP PUTのサポート、ありがとうございます。早速ですが、battp Ver 1.2 でHTTP PUTを実行すると、「501エラー」が発生します。

サーバはIIS6.0(HTTP1.1)。プロクシは使用していません。WEBサーバは外部ではなくイントラネットにあります。PUTしたいLOGディレクトリにはアクセス権が必要となるアカウントを追加して、ユーザーに対してディレクトリの書き込み権限を付与しています。インターネットサービスマネージャ上ではLOGディレクトリの「仮想ディレクトリ」タブで「書き込み」を選択しています。

他にもtelnetやリソースキットに含まれているHTTPプロトコルの解析専用ツール「WFetch」にてPUTしてみましたが、やはり「501エラー」が発生します。

もしかしたら、サーバ側の設定に足らない部分があるのでしょうか?初心者なので、ご存知の方、アドバイス頂けると助かります。
Commented by SIGNAL-9 at 2006-05-31 18:12
ichantenさん、拙作に興味を持っていただきありがとうございます。

私、IIS6.0の環境がないのですが、ちょっと調べてみましたところ、IIS6ではデフォルトではWebDAVの機能(HTTP1.1)はOFFにされているようです(IIS5ではデフォルト有効。セキュリティ強化の為にデフォルトを変えたのだと思います)。

IIS6のマニュアルを参照頂き、WebDAVを有効にしてみていただけないでしょうか。
おそらく手順はMMCでWebサービス拡張→WebDAVを有効化、だと思いますが、実機が手近にないもので…

以下のページなどを参考にされるとよいかと思います。
http://ooishi.at.webry.info/200601/article_2.html
http://blogs.sqlpassj.org/yamaken/archive/2005/09/16/14206.aspx


Commented by ichanten at 2006-06-01 13:55 x
SIGNAL-9さま、アドバイスありがとうございます。

早速、WebDAVを有効にしてみたところ、解決しました!
初歩的な質問にも関わらず、ご丁寧に対応して頂き感謝しています。

引き続き、いろいろと試してみたいと思います。
Commented by SIGNAL-9 at 2006-06-01 14:06
動きましたか。よかったです(^^)

>引き続き、いろいろと試してみたいと思います。
宜しくお願いします。問題あればお教え下さい。
Commented by ichanten at 2006-06-25 11:28 x
SIGNAL-9さま、ご無沙汰しています。
その後、検証してみて気になる点がありましたので教えて下さい。

ローカルファイルを HTTP PUT した場合、サーバ側のファイルのタイムスタンプ(更新日時)がPUTした時間に更新されてしまいます。
この場合、ローカルファイルのタイムスタンプを変更しない状態でサーバへ PUT することは可能でしょうか?
Commented by SIGNAL-9 at 2006-06-26 10:59
ichanten さん、こんにちは。

う~ん、これなんですが、これはクライアント側でどうこうというよりはWebサーバ側の実装がどうなっているかということだと思うのです。

 HTTP PUTの定義であるRCFには「Request-URI が既に存在するリソースを参照している場合は、同封されるエンティティはオリジンサーバにあるそれの修正版とみなされるべきである」とされています。
すなわち、Webサーバ側は既存ファイルに対するPUTは常に「新規作成」として見なせ、ということです。
また、HTTP1.1の定義を見ても、FTPのようにタイムスタンプを弄るという手段が見当たりません。

なにか適当なヘッダを付与することで、この問題が解決できるのでしたら対応できると思うのですが、どうやったらいいのか思いつきませんです。申し訳ない。
Commented by ichanten at 2006-06-26 20:07 x
早速の回答ありがとうございます。
とりあえず HTTP PUT ができていますので、大変感謝しています。
もし回避策が見つかりましたら、お知らせ下さい。試してみたいと思います。
Commented by バッチ屋 at 2006-10-20 14:24 x
こういうソフト長年探してました。そうですよねぇみんな困っていると思うのに。。。^^;
ところで、テキストモードでPUTしたときに、
 ERROR: different file size.
となりますが、問題ないですよね^^
Commented by SIGNAL-9 at 2006-10-24 09:36
バッチ屋さん、拙作に興味を持っていただきありがとうございます。

>テキストモードでPUTしたときに、 ERROR: different file size.

う。気づかれましたか(^^;)

ここ迷ったところなんですが、ファイルサイズチェックをしてOKだったらファイル削除ってことにしてるんですが、テキストでPUTした時にはファイルサイズが変わる「かも」しれないので、このエラーに引っかかる場合があります。
このエラーにした場合、安全を考えてローカルファイルの削除を行わないようにしてあります。

ちょっと迷ってるところなんですが…どうしたらいいでしょうかね(^^;)
Commented by バッチ屋 at 2006-10-25 11:32 x
SIGNAL-9さん、コメントありがとうございましたm(__)m
仕様ということで安心しました。
テキストモードを使用すること自体、私は好きでないので、現状のままでいいと思います。^o^
これからftp処理を全部battpに書き換えようと思っています。
今後ともよろしくお願い致します^o^/
Commented by SIGNAL-9 at 2006-10-26 09:13
>テキストモードを使用すること自体、私は好きでないので、現状のままでいいと思います。^o^

ではとりあえずこのままで(^^;)

>今後ともよろしくお願い致します^o^/
こちらこそ。
またお気づきの点がありましたらお教え頂ければ有難いです。
Commented by concon at 2009-01-09 18:40 x
battpに興味を持っております。
現在mget, mdeleteを使ってバッチを作成しておりますが、
1.日付がDL時の日時になる。
2.アップデートのあったものだけDLしたいのに、全てDLしてくる。

という問題があります。
1についてbattpで解消されるように思いますが、2については対応が可能でしょうか? 説明書を見る限りでは現在未対応のように思われますが、対応していただけると大変うれしい限りです。

どうぞよろしくお願い申し上げます。
Commented by SIGNAL-9 at 2009-01-13 10:27
concon 様、拙作に興味を持っていただきありがとう御座います。

申し訳ないのですが、御指摘のとおり2の方は非対応です。
また、機能拡張の予定も当面はございません(時間が取れないというのが理由です…情けない)。
取るだけ取ってしまい、ローカルのPC側で日付を見て操作していただくしかないと思います。
お役に立てず申し訳ありません。
Commented by KM at 2009-05-22 18:17 x
battpに興味を持っております。
現在当該ソフトを利用してアップロードするバッチを作成しておりますが、
バッチファイルからファイル名を変更してアップロードしたいと思っております。
この場合、送るのは一つのファイルだけなのですが、
以上の内容は対応されておりますでしょうか?
Commented by SIGNAL-9 at 2009-06-01 14:47
KM様、応答遅れて申し訳ありません。

すみません、ご質問の趣旨がよくわからないです。PUTした後にRENAMEできるか?ということでしたら、できません。
Commented by ichanten at 2010-05-18 22:57 x
大変ご無沙汰しております。
その節は大変お世話になりました。
最近、FTPサーバからファイルをダウンロードするスクリプトを急遽作成することになりました。
そこで、FTPサーバの元ファイルと更新日時を同じにしたいため、「TouchDateMode=TRUE」を指定してみたのですが、秒だけが「00」で設定されてしまいます。
WSHの中で、FTPサーバとローカル上にある同名ファイルをDateLastModifiedを使ってそれぞれの更新日時を取得し、大小比較でFTPサーバのファイルが新しければローカルにFTPGETする動作をさせたいと考えています。
この場合、一度FTPGETしたFTPサーバと同じファイルがローカルにあっても、ローカルのファイル更新日時の秒が常に「00」のため、毎回FTPサーバのファイルが更新されたものと判断され、FTPGETを繰り返してしまいます。
何か良い回避策がございましたら、お教えいただけないでしょうか。
宜しくお願い致します。
Commented by signal-9 at 2010-05-19 12:33
申し訳ありません、この問題認識していながらReadMeには書き忘れていました。

(今考えると、上のconcon さんの質問も同じ趣旨だったのかな…)

ftpの当初のRFC上では「日付時刻」の明確な定義が成されていなかったためか、ftpサーバの実装によって日付時刻のフォーマット(文字列)は各種あります(今はそれらしい定義はあるらしいのですが、現実問題としてすべてのftpサーバがそれに対応しているわけでもないようです)。

で、このソフトはサーバ上から返ってきた日付文字列を、定義したフォーマットと照らし合わせて解釈し、できるだけWindowsの日付時刻型にデコードするようにしていますが、まともに取得できない要素は規定値(秒の場合はゼロ)を埋めるようにしています。
特に「秒」に関してはftpのコマンドでは取得できないftpサーバも多く、そこまで対処できなかったというのが実情です。

ということで、お使いの環境では秒を確実に取得する方法はないと思います。申し訳ないです。
Commented by ichanten at 2010-05-19 12:54 x
早速の回答ありがとうございます。
秒がゼロで設定される理由がわかっただけで十分です。
FTPサーバ上にあるファイルのタイムスタンプを取得して、FTPGETしたローカルディスクのファイルのタイムスタンプをtouchコマンドで設定する方法で対応したいと思います。
ご丁寧な対応に感謝しています。
Commented by ichanten at 2010-07-16 13:17 x
いつもお世話になります。
HTTPGETを使ってHTTPサーバからZIPファイルをダウンロードしようと以下のINIファイルで実行したところ、
----------------------------------------------------------
[Entry1]
Mode=HTTPGET
Target=http://10.1.76.118/font/other/sankei_honbun_gothic.zip
LocalPath=C:\SANGetfont\download\
Timeout=60000
TargetPort=80
DeleteMode=False
TouchDateMode=False
HttpProtocol=1.1
HttpSaveHeader=False
HttpKeepAlive=False
HttpNoCache=True
----------------------------------------------------------

ローカルのファイルパス(C:\SANGetfont\download\)には
10_1_76_118_font_other_sankei_honbun_gothic_zip.zip
というファイル名でダウンロードされてしまいます。

通常であれば、HTTPサーバに存在しているファイル名(sankei_honbun_gothic.zip)のままダウンロードされるはずなのですが。

基本的な質問で恐縮ですが、ご教授頂ければ幸いです。
宜しくお願い致します。
Commented by signal-9 at 2010-07-16 15:25
ichanten さん、こんにちわ。

>通常であれば、HTTPサーバに存在しているファイル名
>(sankei_honbun_gothic.zip)のままダウンロードされるはずなのですが。

えっっと、おそらくFTPGETの場合と同一視されているのかと思いますが、HTTPGETの場合、ローカルファイル名をURLから無理矢理作るのは仕様です(私の作ったとおりの動きです)。
HTTPGETの場合、ローカルファイル名はホスト名とURLパスの/を_に変換して作成します。CGIからの出力など、httpの場合にはいわゆるファイル名というものが存在しない場合がある(多い)ためにこうしています。

申し訳ないですが、ご了承賜れれば幸いです。
Commented by ichanten at 2010-07-16 17:06 x
早速の回答ありがとうございます。
以前にもHTTPGETを使ってWEBサーバ内のファイルをダウンロードしたときに、同一のファイル名でダウンロードされているものとばかり思っておりました。

仕様ということで安心致しました。
ありがとうございました。
Commented by ichanten at 2010-07-26 16:21 x
いつもお世話になっております。
HTTPPUTの動作について教えていただきたいことがあります。

ログファイルをHTTPPUTした際、最初の一回目は正常にアップロードされるのですが、同じファイル名のログファイルを再度アップロードしようとすると、battpで“ERROR: HTTP 401 Unauthorized”が発生します。

別のWEBサーバでは正常に同じファイル名のログファイルがアップロード(上書き)されるため、二つのWEBサーバの設定を比較してみた限りでは相違はないのですが。

同じファイル名のログファイルをアップロードして上書きできない場合の原因についてご教授いただけると助かります。

基本的な質問で恐縮ですが、宜しくお願い致します。
Commented by ichanten at 2010-07-27 14:28 x
自己レスになります。

NGだったWEBサーバのアップロードディレクトリに対して、IUSR_MachineName アカウントのアクセス許可を見直すことで解決できました。
 
大変失礼致しました。
Commented by ponta at 2011-01-08 20:27 x
battpとても便利に使わせてもらってます(Win->httpput->WinXP IIS5.0)。今度httpputの相手を Apache/2.2.3 (Red Hat Linux)
にしたのですが、WWW発行しているフォルダを777にしても、
2011/01/08 12:06:42 ===== Section: PONTA Mode: HTTP PUT
2011/01/08 12:08:14 ERROR: HTTP 0
2011/01/08 12:08:14 ERROR: Can not http send test.jpg
2011/01/08 12:08:14 ===== HTTP PUT END
2011/01/08 12:08:14 ExitCode=1
となってしまいます。SELinuxは緩めてブラウザーからはそのフォルダ内が見えていて、フォルダの所有者IDとPWもちゃんとbattp.iniで記載しているのですが。まだSELinuxが悪さしてるか?、apache+WebDAVに対してhttpputしないといけないでしょうか?
Commented by signal-9 at 2011-01-11 09:50
pintaさん、こんにちは。

>2011/01/08 12:08:14 ERROR: HTTP 0
応答コードが0になっているので、何らかの理由でそもそも接続ができていないように思えます。
(1) IEの「Webフォルダ」として正常にWebDAVでのポストができるのかどうか確認頂けるでしょうか。
(2) SSL(https)をお使いだったら、httpで試してみてください。
Commented by ponta at 2011-01-19 12:02 x
ありがとうございます。成功しました!!。Linuxの方で対象フォルダをWebDAV ONにし、オーナー、グループとも apache にしたら、battp.iniで ID,PWとも無記入状態でも HTTPPUTできました。WebDAVはここを参考にしました。
http://www.linuxquestions.org/questions/linux-newbie-8/how-do-i-enable-webdav-in-apache-httpd-761178/
Commented by ichanten at 2012-07-09 11:32 x
SIGNAL-9さま、ご無沙汰しています。
battp の HTTP GET を使って以下の動作をさせることは可能でしょうか?

【処理内容】
URL(http://IPアドレス/log/)配下にあるファイルのうち、ファイル名に“TEST”で始まるファイルをワイルドカード指定で削除する。

F/WでFTPのポートが解放されていないため、HTTPで実現できると嬉しいのですが。

試しに、INIファイル内の定義に対して
Mode=HTTPGET
Target=http://IPアドレス/log/TEST*.*
DeleteMode=True
を指定してみましたが、上手くいきませんでした。

やはり、HTTPでサーバ上のファイルをワイルドカード指定で削除することは出来ないのでしょうか?

お忙しいところ誠に恐縮ですが、ご教授いただければ幸いです。
宜しくお願いいたします。
Commented by ichanten at 2012-07-09 13:56 x
先程の質問ですが、補足させていただきます。

削除したいファイルの拡張子は log で、IIS6.0マネージャにて、logフォルダに対してMIMEの種類へ「拡張子:log、MIMEの種類:text/plain」を追加済みです。
試しに、1個のログファイル(TEST1.log)の削除が可能か検証するため、INIファイル内の定義を
Mode=HTTPGET
Target=http://IPアドレス/log/TEST1.log
DeleteMode=True
で指定してみたところ、指定したロカールフォルダ内へのダウンロードはされるものの、HTTPサーバ内のTEST1.logは削除されませんでした。

サーバの log フォルダのアクセス権として、読み取り&書き込みの許可を与えていて、HTTPPUTでTEST*.logの保存は可能です。
Commented by ichanten at 2012-07-09 14:20 x
battpのログです。
------------------------------------------------------------
copyright(c) 2006 SIGNAL9
useage:battp [Ini file name(default:battp.ini)]
2012/07/09 13:02:47 ===== Section: Entry1 Mode: HTTP GET
2012/07/09 13:02:47 Target: http://IPアドレス/log/TEST1.log
2012/07/09 13:02:48 http GET Result:200 OK
2012/07/09 13:02:48 ERROR: http DELETE Result:400 Bad Request
2012/07/09 13:02:48 ===== HTTP GET END
2012/07/09 13:02:48 ExitCode=2
------------------------------------------------------------

ステータスコード400(リクエストの構文誤り)で削除に失敗している模様ですが、ローカルフォルダ内のログファイルをlog フォルダへHTTPPUTした際に指定した「DeleteMode=True」は成功(HTTPPUT後、ローカルフォルダ内のログファイルは削除される)します。

以上、宜しくお願いいたします。
Commented by signal-9 at 2012-07-10 17:28
ichanten さん、毎々お世話になっています。

残念ですがマニュアル記載通り、現行のbattpではhttp1.1でサポートしているのはPUTだけです。削除はDELETEコマンドですが、これは内部的にサポートしていません。削除をかけるのはローカルファイルだけです。
Commented by ichanten at 2012-07-11 10:02 x
早速の回答ありがとうございます。

現状ではサポート外ということで、承知いたしました。
今後、DELETEコマンドに対応していただけると嬉しいのですが…
Commented by signal-9 at 2012-07-11 10:08
ichanten さん。
すみませんが、もうこのプログラムに機能を追加するつもりはありません。

お役に立てず申し訳ないです。
Commented by Balaji at 2013-01-04 17:53 x
こんにちはすべて、

私はbattp.exeを使用するために初心者ですとFTPGET方法については、次のエラーを取得する。
私はFTPGETメソッドを使用しています
このエラーの原因と解決策を知っている助けてください。
エラーの詳細:
01/04/13 0:09:16 IP_ADDRESS/./Text_File.txt.gz 98921871bytes (01/03/13 21:18:00)
01/04/13 0:23:15 ERROR:

感謝
Balajiさん
Commented by signal-9 at 2013-01-07 10:35
Hi, Balaji さん
It seems that some errors have occurred in the FTP server.

It seems that the error has occurred in the portion of the RETR command (Read data on FTP server).

batto.exe outputs the message of a server after "ERROR:". However, that may be blank (Probably, the server has returned error code, but has not returned the error message).

If possible, Please confirm that the file is acquirable using the command line FTP.

Regards,

# This message column does not permit the message in which only the ASCII character is contained. Please add a suitable Japanese character, if you want to write in a message using English.
Commented by Balaji at 2013-01-07 21:06 x
こんにちは...

ご返信いただきありがとうございます。

以前、我々は、エラーなしでbattp.exeを使用して同じファイルをダウンロードした。

しかし、我々のファイルサイズは日々増加しており、以上の90メガバイトに達しており、ダウンロードが発生しました。

我々が増加してファイルを疑うには、エラーの原因になるかもしれない。 battpを使用してファイルのダウンロードファイルのサイズの何か任意の限界ですか?

よろしく、
Balajiさん
Commented by signal-9 at 2013-01-08 10:36
battp.exeはWindows32/FAT16時代(Windows9X/ME)のものなので、マニュアルに記載してあるとおり、扱えるファイルサイズの最大値は2GBです。
90MB程度ならば問題ないと思います。
<< ldapquery.exe: ... ふたりの永田ぼっちゃんへ。 >>