• 締切済み

VBSについて

VBSについての質問です WINDOWSからSolarisにFTP接続してファイルを取得するVBスクリプト。 ・ /export/home/backup/mysql/の下にあるファイルを取得 ・ /export/home/backup/www/の下にあるファイルを取得 ・取得したいファイル名をリスト化、そのリストを読み込んで、 1つのファイルをGET.→FTP切断→FTP接続→ファイルGET→FTP切断の繰り返し ・取得したファイルはSolarisから削除 ・日付を管理。最新のを5つだけ残す。一番ファイルを削除 こういったVBSはどうつくればいいんでしょうか?

みんなの回答

  • SHIMAPEE
  • ベストアンサー率75% (154/203)
回答No.2

VBSというのはWSH(Windows Script Host) VBScriptと推察しました。ご要望のことはWindowsのftpコマンド+VBSでもできるでしょう。 例えば基本的なところでファイル一覧を取得するのでしたら、 c:\ftpCommandList.txtに下記のftpコマンドを記述しておきます。 ----- ユーザ名 パスワード cd ディレクトリ移動 dir - c:\ftpdir.txt bye ----- c:\ftpList.vbsに下記のVBSを記述しておきます。 ----- set WshShell = WScript.CreateObject("WScript.Shell") WshShell.Run "ftp -s:c:\ftpCommandList.txt ホスト名" ----- c:\ftpList.vbsをダブルクリックして実行するとc:\ftpdir.txtにファイル一覧が得られます。 「日付を管理。最新のを5つだけ残す」というような処理はVBSで作成し、ftpコマンドに展開すればよいと思います。 ftpコマンド及びWSH VBScriptの文字列の扱いについて勉強する必要があり、やはり下記のようなサイトで一通りドキュメントを読み、サンプルを試すのがよいでしょう。 http://www.microsoft.com/japan/msdn/scripting/ http://www.microsoft.com/japan/technet/scriptcenter/default.mspx 一気に最終形を作るのではなく、部品(例えばファイル一覧からファイル名を切り出してftpコマンドに展開など)を作って組み合わせるようにするとよいと思います。そして、わからないポイントに絞って質問して頂ければアドバイスできます。

noname#97729
noname#97729
回答No.1

ちょっと、考えてみました。 VBから手軽に使える、同期型FTPクライアントDLL http://www.vector.co.jp/soft/win95/prog/se085139.html などを使ってみる。 UWSC(自動化ソフト)とFTPのフリーソフトを合わせて使ってみる。 http://www.uwsc.info/index.html http://search.vector.co.jp/search?doc=software&query=FTP&path=&sup_score=1453b&m=250 あと、なでしこにもFTP関係の命令が沢山有るのでできるかも、 http://nadesi.com/

関連するQ&A

  • VBSでFTPを記述できますか?

    OSはWIN2K PROですが、 FTPサーバーより、あるファイルをGETする バッチファイルを作成しました。 ftp 172.16.1.1 get test.txt c:\temp\get.txt バッチファイルで作成したのですが、 VBSでFTPサーバーよりファイルをGETする ということは可能でしょうか? 初心者ですが、よろしくお願いいたします。

  • FTPのアップロートとダウンロードがうまくいかない

    FTPのアップロードまたはダウンロードを行うとタイムアウトになってしまって、原因がわかりません。 Solaris10付属のFTPサーバを使っています。WindowsからFFFTPを使って、/export/homeにユーザ登録されているユーザにログイン後、Solaris10にある数MBのファイルをダウンロードまたはアップロードを行うとタイムアウトになります。また、数KBでも同じ現象なります。rootユーザでは、現象は起きず正常に、アップロード及びダウンロードは行えます。 Windows側でFTPサーバ(3CDaemon)を立て、Solaris10からFTPコマンドにてアップロードまたは、ダウンロードの操作をおこなっても同じ現象になります。 原因が、端末側にあるのかと思い、切り分けで、OSをCentOSに変えて行うと、正常にアップロード及びダウンロードが完了します。 また、端末を変えてもFFFTPを使っても同じ現象になります。 勉強不足で申し訳ありませんが、教えていただけたら幸いです。 よろしくお願いします。 操作を行った時のログは、下記の通りになります。 FFFTPログ FFFTP Ver.1.96d Copyright(C) 1997-2008 Sota. ---------------------------- ホスト 192.168.100.160 (21) に接続しています. 接続しました. 220 solaris01 FTP server ready. >USER solaristest 331 Password required for solaristest. >PASS [xxxxxx] 230 User solaristest logged in. >XPWD 257 "/export/home/solaristedt" is current directory. >TYPE A 200 Type set to A. >PASV 227 Entering Passive Mode (192,168,100,160,148,110) ダウンロードのためにホスト 192.168.100.160 (37998) に接続しています. 接続しました. >LIST 150 Opening ASCII mode data connection for /bin/ls. 226 Transfer complete. ファイル一覧の取得は正常終了しました. (383 Bytes) >>CD C:\ >>CD Documents and Settings >>CD Administrator >>CD デスクトップ >>CD solaris >TYPE I 200 Type set to I. >PASV 227 Entering Passive Mode (192,168,100,160,210,176) アップロードのためにホスト 192.168.100.160 (53936) に接続しています. 接続しました. >STOR /export/home/solaristedt/test.tar.gz 150 Opening BINARY mode data connection for /export/home/solaristedt/test.tar.gz. 送信はタイムアウトで失敗しました. 接続が切断されました. アップロードを中止しました. (91 Sec. 0 B/S). .0C Solaris側のSnoopでとったログ 192.168.100.120 -> solaris01 FTP C port=1520 192.168.100.120 -> solaris01 FTP C port=1520 solaris01 -> 192.168.100.120 FTP R port=1520 solaris01 -> 192.168.100.120 FTP R port=1520 220 solaris01 FTP se 192.168.100.120 -> solaris01 FTP C port=1520 192.168.100.120 -> solaris01 FTP C port=1520 USER solaristest\r\n solaris01 -> 192.168.100.120 FTP R port=1520 solaris01 -> 192.168.100.120 FTP R port=1520 331 Password require 192.168.100.120 -> solaris01 FTP C port=1520 192.168.100.120 -> solaris01 FTP C port=1520 PASS 123\r\n solaris01 -> 192.168.100.120 FTP R port=1520 solaris01 -> 192.168.100.120 FTP R port=1520 230 User solaristest 192.168.100.120 -> solaris01 FTP C port=1520 XPWD\r\n solaris01 -> 192.168.100.120 FTP R port=1520 257 "/export/home/so 192.168.100.120 -> solaris01 FTP C port=1520 TYPE A\r\n solaris01 -> 192.168.100.120 FTP R port=1520 200 Type set to A.\r\n 192.168.100.120 -> solaris01 FTP C port=1520 PASV\r\n solaris01 -> 192.168.100.120 FTP R port=1520 227 Entering Passive 192.168.100.120 -> solaris01 FTP C port=1520 LIST\r\n solaris01 -> 192.168.100.120 FTP R port=1520 150 Opening ASCII mo 192.168.100.120 -> solaris01 FTP C port=1520 solaris01 -> 192.168.100.120 FTP R port=1520 226 Transfer complet 192.168.100.120 -> solaris01 FTP C port=1520 192.168.100.120 -> solaris01 FTP C port=1520 TYPE I\r\n solaris01 -> 192.168.100.120 FTP R port=1520 200 Type set to I.\r\n 192.168.100.120 -> solaris01 FTP C port=1520 PASV\r\n solaris01 -> 192.168.100.120 FTP R port=1520 227 Entering Passive 192.168.100.120 -> solaris01 FTP C port=1520 STOR /export/home/so solaris01 -> 192.168.100.120 FTP R port=1520 150 Opening BINARY m 192.168.100.120 -> solaris01 FTP C port=1520

  • Solarisでイクスポートし、Windowsでインポートする

    Solarisでエクスポートしたdmpファイルを Windowsへインポートしようとしたら IMP-00010:有効なエクスポート・ファイルではありません。ヘッダーは検証に失敗しました。 のエラーが出ました。 ファイルをFTPで取得する時、Windowsのコマンドプロンプトの FTPでそのまま行った為、アスキーモードで転送されたと考えてます。 ここで質問なのですが 1.アスキーモードで転送されたファイルをWindowsへインポート  すると失敗しますか?  失敗する場合、このファイルを何か再変換みたいな事をして  インポート可能なファイルにする事はできるでしょうか? 2.アスキーモードで転送されたこのファイルは、  同じSolarisマシンに対しては、インポート可能でしょうか? (Solarisのマシンは遠方にある為、再度取得が簡単ではないです。 何か分かりましたら、よろしくお願いします。)

  • WSHやVBSについて

    WSHやVBSを用いて以下のような動きをしてくれるスクリプトって出来ますか? (1)私のデスクトップからスクリプトファイルをクリック (2)ファイルがそのままFTPサーバーへ接続 (3)UserとPasswordを自動的に認証 (4)Aという特定のディレクトリへ移動して (5)そのディレクトリ内にある、全部のTXTファイルを対象にして、書き込まれている半角?を全角スペースへ置き換える

  • Access2000でFTPの使い方について。

    Access2000のフォームから、実行のボタンをクリックするとFTPサーバに接続→ファイル取得→Accessテーブルに取込→FTPサーバのファイル削除→FTPサーバの接続切断という処理をしたいのですがどのようにしたらよいかわかりません。説明不足だとは思いますが、アドバイスを宜しくお願い致します。

  • ftp_getできない?

    レンタルサーバの自前のファイルサーバからFTP接続にてファイルを取得しようとしているのですが、エラーとなってしまいます。 FTP接続はできているのですが、ファイルの取得に失敗(FALSE)してしまいます。 レンタルサーバの環境は OS:Linux PHP:4.4.1 試しにftp_nlist関数にてファイル一覧を取得しようとしましたが、やはり失敗(FALSE)してしまいます。 知り合いのレンタルサーバを借用して全く同じプログラムを実行すると正常に一覧の取得ができました。 FTP接続時・ログイン時にはエラーが発生していないのでFTPでの転送は可能だと思うのですが、全くわかりません。 どなたか分かる方ご教授お願いします。 以下、スクリプトです。 if($ftp=ftp_connect($ftp_host)){  if(ftp_login($ftp,$ftp_user,$ftp_pass)){   //ファイルリスト一覧取得    $file_list=ftp_nlist($ftp,".");   var_dump($file_list);   //ファイルダウンロード    if(!(ftp_get($ftp,$local_file,$remote_file,FTP_BINARY))){     エラー処理1;    }   }   else{     エラー処理2;   } } else{  エラー処理3; }

    • ベストアンサー
    • PHP
  • バッチファイル→vbsへのカレントディレクトリ情報引渡をしたいです。

    バッチファイル→vbsへのカレントディレクトリ情報引渡をしたいです。 あるフォルダにvbsファイルとそれを実行するためのバッチファイル、vbsで読み込むリストファイルを置いています。 これを現在ログインしているのとは別のユーザで実行したいのですが、ファイルの記述をすべてフルパス指定しなければ動きませんでした。 しかし、フォルダが変わるたびにすべてのパスを書き換えるのが大変なため、以下のように修正を加えたいと思っています。 (1)バッチファイルでvbsを実行する際、カレントディレクトリ情報を取得し、パスを確定。(CDコマンド) (2)vbsファイル実行 (3)(1)のCDコマンドで読み込んだ情報をvbsに引き渡し、リスト読み込み。 バッチファイルからvbsに引き渡す部分、vbsがバッチファイルから受け取る部分の記述が分かりません。 一例を教えていただけないでしょうか?

  • viコマンドについて

    OS:solaris10(SPARC版) 質問: あるテキストファイルをviコマンドで開いてある文字だけを削除したい場合どのようにしたらいいのですか?ご教授をお願いします。 例えば: /mnt/export/home/a/b/c /mnt/export/home/d/e/f /mnt/export/home/g/h/i /mnt/export/home/j/k/l 上記4つのなかで/mnt/export/home/だけを削除したいです。

  • FTPファイルのget後のファイル削除について

    IIS7.5とWindows Server 2008 R2でFTPサーバーを構築しています。 FTPサーバーにファイルを保存して、そのファイルをお客様がFTPサーバーに 接続してgetします。 その際に、同じファイルが2回get出来ないように、getされたファイルのみを 削除したいと考えています。 また、getされた場合だけ削除したいので、getされていないファイルの削除は 出来ない為、コマンドによる自動削除は行えません。 getされた場合にのみ該当ファイル削除するようなソフトや方法などがあれば お教え下さい。 宜しくお願い致します。

    • ベストアンサー
    • HTML
  • MySQLのSetupファイルの違いについて

    お世話になります。 Solaris8(X86)にMySQL4.0.16をSetupするため、 MySQLのSetupファイルをDLしようと思い、 NySQLのFTPサイトに行ったのですが、 Solaris8版のMySQL4.0.16には、 mysql-standard-4.0.16-pc-solaris2.8-i386.tar.gz mysql-max-4.0.16-pc-solaris2.8-i386.tar.gz mysql-debug-4.0.16-pc-solaris2.8-i386.tar.gz の3種類があり、どれがどのように違うのか分かりません。 どれを使用してインストールするのが一番良いのでしょうか? また、 mysql-4.0.16.tar.gz と先ほどの3種類ではどのように違うのでしょうか? ご存じの方、是非ご教授の程、よろしくおねがいします。

    • ベストアンサー
    • MySQL

専門家に質問してみよう