<コマンドラインの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.できる読者(同様の処置やったこと有る)の回答も待ってます。
|
あとは、項目別にMSでお勉強かな? ◆ マイクロソフト サイトの歩き方 ◇ How-To インデックス ◇ FAQ インデックス ◇ スキルレベル別おすすめコンテンツ ◇ テクノロジ マップ ◇ テーマ別技術資料一覧 |
| ※種類が豊富で探し易いです。※在庫ありが48時間以内発送が急ぎで資料や書籍がほしい時、とても助かります。 お奨め本の目次を見るだけでも勉強になったり |