<コマンドラインのFTPを使ってみた>
こんにちは、三流プログラマーKen3です。 今回は、 FTPの起動テスト を 軽く書いてみたいと思います。 /* * 1. 質問をもらいました */ BBS に以下の投稿がありました。 >投稿時間:2002/12/17(Tue) 13:24 >おなまえ:YN >タイトル:rsh,ftpの記述方法 >コメント: > >WindowsからLinux(リモート側)へrshを使いたいと考えています。 >リモートユーザのホームディレクトリ配下に.rhostsファイルを作成し、実行を >許可するホスト名とユーザ名を指定する。その後、VBAで「rsh Linux計算機名 >-l Linux計算機ユーザ名 -n プログラム名」と書くと思うのですが、それを書く >VBAの記述方法が?です。 > >その逆は、Windows側にコマンドを書いたファイルを用意して「ftp -s:ファイル >名 Linux計算機のホスト名」と書くと思うのですが、それを書くVBAの記述方法 >が?です。 > >何かヒントがあったら教えてください。 >-------------------------------------------------------- リモート側の処理はわからないけど、 FTPでデータを取ってくるのはやったことあるので、 簡単に。 /* * 2.ftp -s:ファイル名 Linux計算機のホスト名 までわかっているなら */ ftp -s:ファイル名 Linux計算機のホスト名 ここまで、知ってるなら、 話はハヤクって、 たぶん、-sのパラメータファイルを作成する方法がわかればすぐだと思うので、 軽く Sub test() Dim strPNAME As String 'パラメーターファイル名 Dim nFNO As Integer 'ファイル番号 strPNAME = ThisWorkbook.Path & "\ftptest.txt" 'ファイル名作成 nFNO = FreeFile '空いてるファイル番号を取る Open strPNAME For Output As #nFNO 'ファイルを新規作成 'データ書き込み Print #nFNO, "help " Print #nFNO, "open xxx" 'ここでパスワードを聞いてきたらウラ技を使う Print #nFNO, "cd xxx" Print #nFNO, "get aaa.dat " & ThisWorkbook.Path & "\aaa.dat" Close #nFNO '開いたら閉じようね 'shellでFTPを起動 Shell "ftp -s:" & strPNAME End Sub http://www.ken3.org/vba/lzh/vba025.lzh に保存しました。 解凍してtest025-book.xlsを開いて、 テストすると、 実行結果 ftp> help Commands may be abbreviated. Commands are: ! delete literal prompt send ? debug ls put status append dir mdelete pwd trace ascii disconnect mdir quit type bell get mget quote user binary glob mkdir recv verbose bye hash mls remotehelp cd help mput rename close lcd open rmdir ftp> open xxx Unknown host xxx. ftp> cd xxx Not connected. ftp> get aaa.dat D:\VBA-TEST\aaa.dat Not connected. ftp> Not connected. ftp> まぁ、ホストにつながってないので、 エラーメッセージでまくりだけど。 /* * 3.ftp の open コマンド */ open ホスト名 でオープンするんだけど、 通常はパスワードの入力を求められます。 これをかわす方法で、安易なのは、 pas.txtとテキストファイルを作成、中身にパスワードを書いておきます。 999999 パラメータファイルのOpenの場所で、 Print #nFNO, "open ftp.xxx.ne.jp <" & ThisWorkbook.Path & "\pas.txt" と書き、 パスワードがテキストpas.txtから入力したようにみせる 姑息な技もあります。 が、 暗号化されてないパスワードをテキストファイルで残すのは、 チト...イヤ、かなり不安な人も居ると思います。 /* * 4.私の失敗 */ 失敗を書かないと最近寝覚めが悪くなった私から、 笑ってしまう失敗談を1つ D:\test とか、テストのディレクトリでテストしてOKでした。 客先へインストール時は、ヤッパカッコつけたいから、 C:\Program Files の下にディレクトリを作り、保存しました。 C:\Program Files\Get\Get.xls と。。。 もうわかりました? Program Files ってスペースが空いてるんですよ。 まず、 Shell "ftp -s:C:\Program Files\Get\パラメータファイル" みたいになり、 あれ?動かない、、、なんてことあったなぁ。 コマンドプロンプト系のプログラムを起動する時は、 フォルダー名のスペースには要注意です。 /* * 5.終わりの挨拶 */ FTPはこんな感じで、出来ると思います。 Linuxのシェルの起動は、わからないけど、 半分でも、1つでも参考になればうれしいけど、、、 拾い読みして、 1つでも何かの参考となれば幸いです。 Excel/Access大好き、三流プログラマーKen3でした。 PS.できる読者(同様の処置やったこと有る)の回答も待ってます。
ここまで、読んでいただきどうもです。ここから下は、三流君のホームページの紹介・案内です
目的の情報が見つかったか?少々心配しつつ、、、
気になったジャンル↓を選択してください。 人気記事(来場者が多いTOP3): Excel関係: Access関係: その他:VBAの共通関数やテキストファイルの操作など 開発時の操作: [F1を押してHELPを見る]/ [Debug.Print と イミディエイトウインドウ]/ [実行時エラーでデバッグ]/ [ウォッチ式とSTOP]/ [参照設定を行う] 仕様書(設計書?) XXXX書類: [基本設計書や要求仕様書]/ [テスト仕様書 テストデータ]/ [バグ票]/ [関数仕様書]/ [流れは 入力・処理・出力] ※↑文章の味付けが変わっていて、お口に合うかわかりませんが。。。 |
Blogとリンク:[三流君の作業日記]/
[VBAやASPのサンプルコード]/
広告-[通販人気商品の足跡]