電子書籍の厳選無料作品が豊富!

FTPサーバーからCSVファイルをダウンロードしようとftpcmd.txtファイルに下記を記述しました。コマンドプロンプトではファイルの取得に成功しています。
open
server_name
password
get remote_file local_file
close
bye

問題は、この取得したファイルを差し替えるローカルPC側のリダイレクトの場所である[ログファイル名]の.batファイルの記述の仕方がわかりません。
ftp -s:ftpcmd.txt > [ログファイル名]←ログファイル名の記述方法

例えば、”C:¥”に置きたい場合はどのように記述すればよろしいのでしょうか?
よろしくお願いします。

ちなみに下記のHPを参考にして作成しました。
http://www.psytec.co.jp/tips/0102/

A 回答 (8件)

流石にそこまでいくとシステム開発になると思いますので


わたしには負いかねます。

技術系の方で新たに質問を立てたほうがよろしいかと思います。

>VBAから.bat
これはその実行方法と実行権限にもよるものと思います。
できないことは無いと思います。
    • good
    • 0
この回答へのお礼

necomimi様、本当にありがとうございました。
本当に助かりました!!
ネットワーク関係は全く初めてだったのに、お蔭様で何とかなりそうです。
本当にお世話になりました。今後ともよろしくお願いします。

お礼日時:2006/04/26 18:22

このbatが一連の流れの中の1つとしたら


ログファイルはあった方が良いと思います。
アバウトではありますが、ログを頼りに
その後の処理(エラーetc)の手助けとなると思うので。

この回答への補足

necomimi様、本当にありがとうございます。
ご察しの通り、このbatファイルは一連の作業の中で利用したいと思っています。

定期的に、サーバーからCSVデータを取得し、取得したデータをVBAで読み込もうと思っています。
そこで、度々で申し訳ないのですが、この.batファイルを自動起動させる方法として、
(1)ウインドウズのタスクマネージャーを利用して起動する
(2)VBAをタスクマネージャーで自動起動、自動実行して、.batファイルを起動する。

(1)は問題なく実行できるのですが、(2)の方法でVBAから.batファイルを呼び出すとファイルの起動はするのですが、データの取得ができません。

他のプログラムの実行中は、ms-dosではデーターの取得等ができないとかの制約があるのでしょうか???

また、上記のような問題点の手助けとして、ご指摘頂いたとおり、ログファイルを作ろうと思うのですが、データの書き出し方法の良いサイト等をご存知でしたら、お教え願えないでしょうか?(探しているのですがなかなか・・・)

重ね重ねで本当に申し訳ないですがよろしくお願いします。

補足日時:2006/04/26 12:12
    • good
    • 0

以下の記述で、BATは動きません


--------------------
ftp サーバー名
ユーザー名
パスワード
get/putコマンド
close
quit
--------------------

最初の記述通りでtxtを作ってください
--------------------
open
サーバー名
ユーザー名
パスワード
get/putコマンド
close
bye
--------------------

この回答への補足

necomimi様、何度もありがとうございました。
お蔭様で、最後まで通りました。fileの取得もできました。

txtファイル内のgetでファイルを取得していれば、処理を自動化するための.batファイルで、[ログファイル名]の記載は不要ですよね。
最初にご指導いただいた意味がよくわかりました。最初の疑問も解決しました。

補足日時:2006/04/25 22:29
    • good
    • 0

>MS-DOS ウインドウに表示されるのですよね?


そうです。

>等の記述はいらないですよね
そうです。

この回答への補足

necomimi様度々ありがとうございます。
ご指摘の通りLoginが上手くいっていないようです。
詳細は#4様の補足欄に記載させていただきました。

後、何をお伝えすべきでしょうか?
何卒よろしくお願いします。

補足日時:2006/04/25 17:57
    • good
    • 0

まずツッコミから。


ログファイル名が.batである必要は無いと思います。

では本題。

ftpコマンドをBAT形式で記述するのであれば、BATファイルを作成して、中にFTPコマンドを書くのが判りやすいですし、コマンドプロンプトでの入力どおりに記述すればいいだけなので簡単です。

即ち、my_ftp.batというBATファイルを作成し、内容を以下の様に記述します。

ftp サーバー名
ユーザー名
パスワード
get/putコマンド
close
quit

これで作成したBATファイルをそのまま実行すればいいと思いますが、どうでしょうか?

もしログをリダイレクトしたければ、コマンドプロンプトから
my_ftp.bat > my_ftp_log.txt
なり指定して実行すればログも取得出来ると思います。

※単にftpコマンドのファイル指定方法が判らないので、BATでお茶を濁しているだけですが。(^^;

この回答への補足

chinensis 様早速のご回答ありがとうございます。
皆様のご指摘の通り、Loginが上手く設定されていないようです。
.batファイルを下記のように記述しなおして実行しました。
ftp サーバー名
ユーザー名
パスワード
get/putコマンド
close
quit

結果は、ユーザ名を入力するところでコマンドプロンプトが止まってしまいました。
値を手打ちで入力すると問題なく進みます。

ということは、ユーザー名等を記述する際に、何か必要なのでしょうか?

ちなみに止まってしまうコードは
C:\autocsv>ftp サーバー名
Connected to server_name
220 FTP server (Version wu-2.6.2(1) Tue Apr 25 17:46:43 2006) ready.
User(サーバー名:(none)):     ←ここで止まります。

それと、最終的にはCSVファイルをダウンロードしたいです。
ですので、やはりリダイレクトが必要な気がするのですが・・・

よろしくお願いします。

補足日時:2006/04/25 17:56
    • good
    • 0

ログの内容は実行された内容が記されてるだけなので



その内容ではユーザー名かパスワードが未入力か
間違っているのでLoginに失敗してる…としかわかりません。

記述が正しければ、batは正しく実行されるはずですとしか…

この回答への補足

necomimiさま、度々ありがとうございます。
失敗の原因がよく把握できず申し訳ございません。
初歩的な質問ですが、.batファイルに ftp -s:ftpcmd.txt  とだけ記述して実行した場合、リダイレクトの記載がないので、MS-DOS ウインドウに表示されるのですよね?
つまり、表示されないということは、txtファイルの記載に間違いがあり、ご指摘の通りLoginに失敗しているとのことですね。

それと、ユーザー名やPWの記述の前に、特に
User:
Password:
等の記述はいらないですよね。。。

重ね重ね申し訳ございません。よろしくお願いします。

補足日時:2006/04/25 13:56
    • good
    • 0

良くわかりませんが


user_nameは必要ないんでしょうか?

この回答への補足

necomimi様早速のご回答ありがとうございます。
あ、すいません、user_nameの記載必要です。
.txtファイル(オペレーションファイル)に
server_name
user_name
password
の順で記載してます。申し訳ございません。

ということなので、
ftp-s(オペレーションファイル名)>(ログファイル名)の
ログファイル名にはser_nameの記載は必要ないと思うのですが・・・

よろしくお願いします。

補足日時:2006/04/25 11:43
    • good
    • 0

ftp -s:ftpcmd.txt >ftpcmd.logと記載して、ftpcmd.batファイルにして、C:\において、この.batをダブルクリックでいけると思いますが。

C:\***とフォルダを作って***の中に入れてされるほうが良いと思いますが。

この回答への補足

aki567様早速のご回答ありがとうございます。
C:\aaaというフォルダーをつくって、その中に、.batファイルと.txtファイルを置いておけばいいのですよね。
.batファイルを上記のように
ftp -s:ftpcmd.txt >ftpcmd.log
記述しても、ftpcmd.txtファイルが複製されるだけで、
ftp> To Connected to server_name
open
server_name
220 FTP server (Version wu-2.6.2(1) Tue Apr 25 09:03:43 2006) ready.
User (server_name:(none)):
331 Password required for m-a-n-a2.
530 Login incorrect.
ftp> get /var/www/***/***/*** /***:.csv
530 Please login with USER and PASS.
530 Please login with USER and PASS.
ftp> close
221 Goodbye.
ftp> bye
(具体的なserver_nameとファイル名は伏せさせていただいてます)

という記述がされた新しいtxtファイルが作られるだけなのでが・・・
よろしくお願いします

補足日時:2006/04/25 09:06
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!