• 締切済み

FTPコマンドでバッチ処理をする際の解凍方法

FTPコマンド初挑戦中の者です。 FTPコマンドでバッチ処理をする時に、webサーバー上でZIPファイルを解凍する方法はありますか? ZIPファイルのアップロードまではできたのですが、解凍方法がわかりません。 自分なりに調べて、色々とやってみたのですが、うまくいきません。 どなたかご教授いただけますと幸いです。

みんなの回答

  • dscripty
  • ベストアンサー率51% (166/325)
回答No.3

telnet とか ssh でログインさせてもらえなかったり、シェルを使わせてもらえないサーバへ ftp でたくさんのファイルを転送するときは、ZIP 圧縮して一つのファイルにしたりしないよ。 一個一個ファイルを put するのもいいけど、mput コマンドで複数のファイルを一度に指定して転送してもいいとおもう。 http://archive.linux.or.jp/JM/html/netkit/man1/ftp.1.html ---- 引用はじめ ---- mput local-files 引き数で与えられたローカルファイルのリストにあるワイルドカードを展開し、結果として得られたファイルリストにある各ファイルに対して put を実行する。ファイル名展開の詳細は、 glob を参照すること。結果として得られたファイル名は、 ntrans と nmap の設定に従って処理される。 ---- 引用おわり ---- ftp にどんな機能があるのか、一度、マニュアルをページを見てみるといいかも。 ↓は mput の使い方の例ね。 ---- 例はじめ --- $ pwd /home/example.com ls index.* index.css index.html index.png $ ftp -n -i example.com Connected to example.com 220 …… ftp> user someone 331 Password required for someone Password: 230 User someone logged in. ftp> cd public_html ftp> mput *.html  :  :  : ftp> ---- 例おわり ---

nekoattack
質問者

お礼

遅くなり申し訳ございませんん。mputを含め、他の方法を考えてみたいと思います。ご丁寧な回答、ありがとうございました。

  • nda23
  • ベストアンサー率54% (777/1415)
回答No.2

FTPはその名の通りファイルの基本操作しか できません。つまり、圧縮とか解凍といった ユーティリティプログラムを実行することは できません。これをやるにはTELNETを使って、 サーバ上の操作をシュミレートする等の方法が あります。

nekoattack
質問者

お礼

遅くなり申し訳ございません。TELNETを含め、他の方法を考えてみます。ありがとうございました。

noname#198951
noname#198951
回答No.1

FTPでサーバーのシステムにある圧縮展開プログラム(zip)を実行させる方法は無かったと思います。 telnetを使うのが普通ですから。

nekoattack
質問者

お礼

遅くなり申し訳ございません。色々自分自身で調べてみて、方法が無かったのですが、やはり無いのですか。他の方法を考えてみます。ありがとうございました。

関連するQ&A

  • バッチでFTPコマンド

    バッチ処理内でFTP接続し、ファイルの上げ下げを行う処理を作成しています。 使用しているサーバーはPHPのFTP関数が使用できない環境で、 コマンド関数を利用し直接処理を書こうと思うのですが、 exec('ftp ホスト'); と記述してもユーザー名、パスワードを聞かれてしまう為正常に動作しません。 こういった場合どうしたら良いのでしょうか?? 詳しい方がおられましたらご回答頂ければと存じます。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • FTPの作業をWindows上のバッチでおこないたい

    こんにちは。Windowsは初心者です。 あるファイルを別のサーバーにFTP(PUT)したいと考えています。 コマンドプロンプトからFTPのコマンドをたたくのではなく なにかバッチファイル?のようなもので、中に一連のFTP処理を記述し バッチファイルを起動という形で処理を行ないたいのです。 バッチファイルの作成の方法がわかりません。 またFTPの記述の仕方がわかりません。あるファイルを別のサーバに FTP(PUT)したいだけなのです。またエラーも認知したいとも思っています。 どんな本を読めば分かりますでしょうか? また具体的なコード(バッチに記述するFTPのコード)を知っていましたら 教えて下さい。

  • パスワード付きzipファイルをバッチで解凍

    パスワード付きzipファイルをWindowsXP端末で バッチ(コマンドライン)から解凍する方法は無いでしょうか。 プログラム(c言語かコマンドプロンプトの予定)を実行すると、 ユーザの操作無しにzip解凍して、ファイル処理させたいと思っています。

  • FTPのバッチファイル

    ローカルPCからサーバーのPCへ毎日決まったファイルをFTPで伝送したいと思っています。今はFFFTPで、毎日手動でファイルをアップロードしていますが、DOS窓からFTP接続するコマンドをバッチファイルにすることってできないのでしょうか? できれば、そのバッチファイルをタスクスケジューラーに登録して日々自動でアップロードしたいと考えています。 ftp open 接続先 ユーザーID パスワード put ファイル名 といった内容をバッチファイルにしたいのですが、やり方をご存知の方がいらっしゃいましたら、教えていただけないでしょうか?

  • コマンドプロンプト FTPコマンドについて

    こんばんわ。 今回はコマンドプロンプトのFTPコマンドについて質問させてください。 処理概要 Windowsバッチにて、サーバA(Windows)からサーバB(UNIX)にFTPでファイルを複数送りたい その際、FTPが成功したか失敗したかをログファイルに出力したい。 以下プログラム set logDir=C:\hogehoge\log\ set settingFileName=C:\hogehoge\upload.ftp set execDate=%date:~-10,4%%date:~-5,2%%date:~-2,2% set logFileName=%logDir%log_%execDate%.txt echo FTPバッチ起動 >> "%logFileName%" cd C:\hogehoge echo FTP開始 >> "%logFileName%" ftp -s:"%settingFileName% >> "%logFileName%" upload.ftpというファイルには以下のように記述しております。 ftp open サーバIP ポート ログインID パスワード binary prompt mput *.csv bye この2種類のファイルで、FTPは出来るのですが、 どうにかして成功/失敗を判断したいです。 どなたかわかる方、ご教授お願いいたします。 補足 UNIX上のバッチ処理(Cシェル)でもファイルがあるかどうか判断していますが、 WindowsでFTP失敗の場合、メールを送りたくてこのようなバッチを作成しました。

  • コマンドプロンプトからftpコマンドを打つ

    お世話になります。 コマンドプロンプトからftpコマンドを使ってファイルをアップロードしようと思います。 ですが、ftpとコマンドをコマンドプロンプト内で打つと、 「’ftp’は、内部コマンドまたは外部コマンド、 操作可能なバッチファイルとして認識されていません。」 と表示されます。 打ったコマンド: C:\DocumentAndSetting>ftp IPアドレス 調べてみたのでですが、原因がわからず、質問させていただいた次第です。 どなたかアドバイスお願いします。

  • UnzipするDosコマンド

    Ftpサーバーに置いてあるZipファイル(毎週更新される)を解凍し 解凍されたファイルをローカルにコピーするようなバッチを 作りたいのですが、Zipファイルを解凍する段階でつまづいています。。 Zipを解凍するコマンドというのはあるのでしょうか? バッチファイルというものに初めて取り組み わからないことだらけなのですが、よろしくお願いします。

  • バッチファイルからftpを実行時に処理完了を待たない方法

    ある市販のjava系のアプリから時間起動でバッチファイルを起動します そのアプリは同時に複数のバッチファイルを起動できない仕様で ある外部プログラム(バッチファイル)を起動したら処理の完了を 待ってから次の処理バッチファイルを起動するのです 同時起動はできません なので最初に起動したバッチファイルがフリーズしてしまうと 次のバッチファイルが起動できずに永遠と待ち状態になってしまうんです そのソフトのメーカーに問い合わせしてみたのですが 呼び出し側はタイムアウトさせるような設定はない仕様なので 呼び出ししたプログラムのほうでタイムアウトするようにして下さい という回答でした なんとか回避しようと そのバッチファイルは ftp -s:c:\cmd.txt というようにftpコマンドを利用しているのですが (稀に何らかの原因でftpがフリーズしてしまう現象があります) ftpコマンドがフリーズしてしまったらどうしょうもないですよね・・・ この現象を回避したくて バッチファイルを start ftp -s:c:\cmd.txt exit に変更しました こうすればftpの完了を待たずにバッチファイルが終了するので たとえftpの処理が一つフリーズしてしまったとしても 別のバッチファイルの起動は問題なく行えると考えたからです しかしその市販アプリが内部的にどのようにバッチファイルを起動しているかわからないのですがテストしてみましたところ (ftpのコマンドをわざとquitしないようにして終了しないftp処理にして バッチファイルを起動してみたのです) 結果としては起動したバッチファイルが完了したとはみなしてくれず 次のバッチファイル起動ができないまま永遠に待ち状態になってしまいました・・・ バッチファイルからftpコマンドを別プロセスで起動する (ftpの完了を待たずにバッチファイルを終了させる) という事はできないでしょうか? アドバイスお願い致します

  • バッチファイルからftpコマンドを使って不特定のファイルをダウンロードしたい。

    バッチファイル上のftpコマンドを使ってftpサーバーにあるカレントディレクトリー以下のファイルを一切合切ダウンロードしたいのですが、なんかいい方法ありませんか?   ↓ここをなんとかしたいのですが   dir|mget ※[]は各設定を入れる ↓バッチファイル ----------------------------------- ftp open [127.0.0.1] [User] [Password] dir | mget by --------------------------------

  • コマンドプロンプトの繰り返し処理について

    コマンドプロンプト初心者です。 今回、同じファイルをWebサーバー上の複数のフォルダにアップロードするバッチを組みたいのですが、「for」による繰り返し処理がうまくできません。 さらに具体的にいいますと「public_html/10」「public_html/11」「public_html/12」「public_html/13」それぞれに「AAA」というフォルダを作り、その中に「BBB.txt」というファイルをアップロードしたいのです。 なお、「public_html/10」に「AAA」というフォルダを作り、その中に「BBB.txt」というファイルをアップロードをおこなう、という一度だけの処理はできています。ですが、forを使い、繰り返し作業をおこなおうと試みるも、うまくいきません。 以下が作成したFTPコマンドです。 ------------------------------ open XXX.XX.XX.XX name password For /L %%a in(10,1,13) do ( cd /public_html/%%a mkdir AAA cd /public_html/%%a/AAA put C:\BBB.txt BBB.txt) EXIT       ------------------------------ お手数ですが、ご教授いただけますと幸いです。 よろしくお願いいたします。