- - PR -
コマンドからftp転送してのエラーについて
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-08-08 21:55
いつも拝見させていただいております。
vb.net初心者です。 現在、FTPを使用して、転送のためバッチを作成して、VB.NETからshell関数を 使用して転送処理を行っているのですが、バッチで転送を行う際にエラーが発生した 時のエラーをvb.netに返す方法などあるのでしょうか? 調べたのですが、リダイレクトでできるなど書いてあったのですが、いまいち使い方 がわかりません。 何かよい方法をご存知でしたらお願いいたします。 FTPのバッチでは、openやcd、putなどを記述しています。 ログインに失敗した、putで失敗した(複数行存在する)などエラーが発生 したときに、VB.NETにエラーを返して、エラー処理を行いたいと考えています。 | ||||
|
投稿日時: 2006-08-08 22:16
バッチなら戻り値で返せばいいんじゃね?
| ||||
|
投稿日時: 2006-08-08 23:04
ぶさいくろうさん
戻り値の返し方、受け方などがまったくわかりません。 ご存知でしたら、お願いします。 | ||||
|
投稿日時: 2006-08-08 23:39
Shellでftp・・・・ということは、要するに
%SystemRoot%\System32\ftp.exeを使用するってことですよね。 それも、恐らく -s:filename オプションで。 私が以前に試した限り、vb.netにエラーを戻すとか戻さない以前に -s:filenameオプションで実行すると、途中で失敗しようが失敗しまいが、 常にftp.exeの戻す値は一定でした(確かゼロで固定)。 すなわち、成功することを前提とするような場合にのみ、 (コケても笑って済ますことができる自分のためのツール程度) 使用できると思います。 途中で部分的にコケたときはどうするとか、詳細なエラーの ハンドリング、分岐処理をするなら、FTP相当のSocket通信を 自前で(まぁ、フリーコンポーネントや、市販コンポーネントを使う手もありますが) 組むしかないです。 -s:filenameのつもりで書いているのではなければ、外してすまん。 | ||||
|
投稿日時: 2006-08-09 00:06
Shellでftp・・・・ということは、要するに
%SystemRoot%\System32\ftp.exeを使用するってことですよね。 それも、恐らく -s:filename オプションで。 ftp.exeではなく、バッチファイルに”ftp -s:ファイル名.CMD” でファイル名.cmdにopen、cd、putなどでコマンドを記述しています。 | ||||
|
投稿日時: 2006-08-09 12:40
私が前回確認したときは、バッチでは起動していませんが、 バッチだったら大丈夫だった という発言意図??? 私は当事者ではないので、自分で確認する気力がありませんが。 バッチだったらちゃんとそれなりのエラーコードが返ってきます??? 多分、返ってこないと思いますが。 ==================================================== 加筆 ちなみに私はVBScriptからRunして戻り値を調べた 経験に基づいて記述しています。 [ メッセージ編集済み 編集者: platini 編集日時 2006-08-09 12:41 ] [ メッセージ編集済み 編集者: platini 編集日時 2006-08-09 22:31 ] | ||||
|
投稿日時: 2006-08-11 22:31
おそらく、コマンドラインに打ち込む ftp が、%SystemRoot%\System32\ftp.exe だということを知らないと思われ。。。 イヤ、多いんですよ。環境変数 PATH を知らない人たちが。。。 | ||||
|
投稿日時: 2006-08-16 17:45
こんにちは。
Jittaさんの言う通りで、コマンドラインで記述するftpとは、%SystemRoot%\System32\ftp.exeです。 あと、実行結果ですが、これは戻ってきます。 verboseを設定することで実行結果がコードで返ってきます。 これを処理することで、自分と意図している処理が行えるかと思います。 (判定処理とかは自分で組むしかないかと、、) 「RFC文書」のキーワードで検索するとそれらしいものが引っかかるかと思います。 |
1