• ベストアンサー

FTPコマンドの記述方法

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/

質問者が選んだベストアンサー

  • ベストアンサー
  • necomimi
  • ベストアンサー率41% (633/1540)
回答No.8

流石にそこまでいくとシステム開発になると思いますので わたしには負いかねます。 技術系の方で新たに質問を立てたほうがよろしいかと思います。 >VBAから.bat これはその実行方法と実行権限にもよるものと思います。 できないことは無いと思います。

ken123
質問者

お礼

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

その他の回答 (7)

  • necomimi
  • ベストアンサー率41% (633/1540)
回答No.7

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

ken123
質問者

補足

necomimi様、本当にありがとうございます。 ご察しの通り、このbatファイルは一連の作業の中で利用したいと思っています。 定期的に、サーバーからCSVデータを取得し、取得したデータをVBAで読み込もうと思っています。 そこで、度々で申し訳ないのですが、この.batファイルを自動起動させる方法として、 (1)ウインドウズのタスクマネージャーを利用して起動する (2)VBAをタスクマネージャーで自動起動、自動実行して、.batファイルを起動する。 (1)は問題なく実行できるのですが、(2)の方法でVBAから.batファイルを呼び出すとファイルの起動はするのですが、データの取得ができません。 他のプログラムの実行中は、ms-dosではデーターの取得等ができないとかの制約があるのでしょうか??? また、上記のような問題点の手助けとして、ご指摘頂いたとおり、ログファイルを作ろうと思うのですが、データの書き出し方法の良いサイト等をご存知でしたら、お教え願えないでしょうか?(探しているのですがなかなか・・・) 重ね重ねで本当に申し訳ないですがよろしくお願いします。

  • necomimi
  • ベストアンサー率41% (633/1540)
回答No.6

以下の記述で、BATは動きません -------------------- ftp サーバー名 ユーザー名 パスワード get/putコマンド close quit -------------------- 最初の記述通りでtxtを作ってください -------------------- open サーバー名 ユーザー名 パスワード get/putコマンド close bye --------------------

ken123
質問者

補足

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

  • necomimi
  • ベストアンサー率41% (633/1540)
回答No.5

>MS-DOS ウインドウに表示されるのですよね? そうです。 >等の記述はいらないですよね そうです。

ken123
質問者

補足

necomimi様度々ありがとうございます。 ご指摘の通りLoginが上手くいっていないようです。 詳細は#4様の補足欄に記載させていただきました。 後、何をお伝えすべきでしょうか? 何卒よろしくお願いします。

  • chinensis
  • ベストアンサー率40% (54/132)
回答No.4

まずツッコミから。 ログファイル名が.batである必要は無いと思います。 では本題。 ftpコマンドをBAT形式で記述するのであれば、BATファイルを作成して、中にFTPコマンドを書くのが判りやすいですし、コマンドプロンプトでの入力どおりに記述すればいいだけなので簡単です。 即ち、my_ftp.batというBATファイルを作成し、内容を以下の様に記述します。 ftp サーバー名 ユーザー名 パスワード get/putコマンド close quit これで作成したBATファイルをそのまま実行すればいいと思いますが、どうでしょうか? もしログをリダイレクトしたければ、コマンドプロンプトから my_ftp.bat > my_ftp_log.txt なり指定して実行すればログも取得出来ると思います。 ※単にftpコマンドのファイル指定方法が判らないので、BATでお茶を濁しているだけですが。(^^;

ken123
質問者

補足

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ファイルをダウンロードしたいです。 ですので、やはりリダイレクトが必要な気がするのですが・・・ よろしくお願いします。

  • necomimi
  • ベストアンサー率41% (633/1540)
回答No.3

ログの内容は実行された内容が記されてるだけなので その内容ではユーザー名かパスワードが未入力か 間違っているのでLoginに失敗してる…としかわかりません。 記述が正しければ、batは正しく実行されるはずですとしか…

ken123
質問者

補足

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

  • necomimi
  • ベストアンサー率41% (633/1540)
回答No.2

良くわかりませんが user_nameは必要ないんでしょうか?

ken123
質問者

補足

necomimi様早速のご回答ありがとうございます。 あ、すいません、user_nameの記載必要です。 .txtファイル(オペレーションファイル)に server_name user_name password の順で記載してます。申し訳ございません。 ということなので、 ftp-s(オペレーションファイル名)>(ログファイル名)の ログファイル名にはser_nameの記載は必要ないと思うのですが・・・ よろしくお願いします。

  • aki567
  • ベストアンサー率32% (141/439)
回答No.1

ftp -s:ftpcmd.txt >ftpcmd.logと記載して、ftpcmd.batファイルにして、C:\において、この.batをダブルクリックでいけると思いますが。C:\***とフォルダを作って***の中に入れてされるほうが良いと思いますが。

ken123
質問者

補足

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ファイルが作られるだけなのでが・・・ よろしくお願いします

関連するQ&A