フォルダ階層のあるzipファイルで全ファイルを抽出

このQ&Aのポイント
  • フォルダ階層のあるzipファイルから全ファイルを簡単に抽出する方法を教えてください
  • 毎日のフォルダ階層のあるzipファイルから必要なファイルを自動的に取り出す方法を知りたいです
  • 日々の作業を簡単にするために、フォルダ階層のあるzipファイルから最後のファイルを抽出する方法を教えてください
回答を見る
  • ベストアンサー

フォルダ階層のあるzipファイルで全ファイルを抽出

こんにちは 日々のちょっとした作業が煩わしくて、自動化できないかと思い質問します。 仕事で毎日、何度となく zip ファイルを受け取ります。このzipファイルは次のような階層になっています。 パターン1: base.zip -folder1 --folder2 ---folder3 ----workfile.txt パターン2: base.zip -folder1 --folder2 ---folder3 ----folderA -----workfileA.txt ----folderB -----workfileB.txt ----folderC -----workfileC.txt 必要なのは、パターン1の場合は workfile.txt、パターン2の場合は workfileA|B|C.txt です。毎日このフォルダ階層をたどって、最後のファイルをコピーしてまた元のディレクトリに戻ってペーストしています。パターン2の場合も、最後のA|B|Cファイルを元の同じ1つのディレクトリに並べてコピーしています(foldrA|B|Cに分かれていても関係ない、ということです)。 こうした作業を自動化する方法はないでしょうか。 7-zip アプリケーションは導入しています。 おそらく、考え方としては、zip 内にある「フォルダ以外」=「ファイル」を、そのzipファイルと同じディレクトリにすべて展開する、というスクリプトになると思います。 7-zip あたりのコマンドラインをbatファイルでこねくり回すとできるのか、zip をフォルダとして展開した後、batかwshスクリプトでぐるぐる回すのか、どうしたらよいかわかりません。 どなたかお知恵を貸してください。よろしくお願いします。

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

  • ベストアンサー
回答No.1

http://sevenzip.sourceforge.jp/chm/cmdline/ の 7-Zipを使うなら以下のマニュアルに従う。 http://sevenzip.sourceforge.jp/chm/cmdline/commands/extract.htm →即ち、 7z e base.zip   ・カレントディレクトリをbase.zipの場所にしてから実行する

tuktukrace
質問者

お礼

感謝です!できました! もっと面倒な手順を踏むのかと思っていました、zip ファイルを右クリックしてプログラムから開くの候補に、作成したbatファイルを登録したので、クリック2回でできるようになりました。 ::対象となるファイル set target=%1 ::展開先(対象ファイルと同じディレクトリ) set base="%~dp1" ::「*.*」指定で事実上ファイルのみとなる、はず。-aoa は強制上書き、rはたぶん・・・再帰的ということかもしれません。 7z.exe e %target% -o%base% *.* -aoar 見事にできました!日々の作業が楽になります。

その他の回答 (1)

noname#212058
noname#212058
回答No.2

以下のサイトに『サブディレクトリまで含めてファイルを コピーする』方法が載っています。 http://www.noshiroya.com/it/2008/03/xcopy.html 回答No.1 さんの回答と合わせれば、目的のことはできる かと思います。

tuktukrace
質問者

お礼

時間差!でもありがとうございます。 そうです、こういうのを想像していました。 が・・・No1の方が7-zipだけで、しかも1つのコマンドだけでできる方法を教えてくれました。 ご協力ありがとうございます。Thank you anyway!

関連するQ&A

  • Javaでフォルダ複数階層のZipファイルの作成方法

    こんにちは. java.util.zipについて過去にいくつか質問があったのですが、 知りたいことがなかったので質問させていただきます. 自分なりに調べて,複数のファイルをzipに固める方法は分かったのですが, zip内にフォルダを複数階層つくる方法がわかりません. どなたかご教示お願いいたします. (A.zip の中にフォルダB,フォルダC,フォルダD それぞれのフォルダ内にファイルやフォルダがある っといった感じです)

    • ベストアンサー
    • Java
  • バッチファイルで複数のディレクトリのファイル削除

    バッチファイルで複数のディレクトリの中のCSVファイルを削除しようとしています。 D: ├─folderA | ├─fileA.csv | └─fileB.csv ├─folderB | ├─fileC.csv | └─fileD.csv └─folderC   ├─fileE.csv   └─fileF.csv このような階層で、カレントがD直下です。 D直下からfolderA、folderB、folderCの名前を指定せずに、 D直下にあるすべてのフォルダの中のcsvファイルをバッチで全部削除したいのです。 ワイルドカードを使えばいいのでしょうが、いまいちうまくいきません。 よろしくお願いします。

  • VBA バッチファイルでコピー出来ない

    以下のマクロを作りましたが、うまくいきません。 フォルダBにあるバッチファイルを実行するだけのマクロで、バッチファイルはフォルダAにあるファイルを自身のフォルダつまりフォルダBにコピーするものです。 マクロ Sub Test() Dim Str As String Str=shell(folderB\batch.bat, vbnormalfocus) End sub Batch.batの中身 Copy folderA\fileA . 注:folderAやfolderBはそれぞれのフォルダのフルパスです。 実行すると、何故かフォルダBでなくてデスクトップにコピーされます。バッチファイルをクリックして直接起動すると、目論見通りフォルダBにコピーされます。コマンドプロンプトからフォルダBに移動し、バッチファイルを起動しても、目論見通りフォルダBにコピーされます。 マクロから起動した時だけ、どうしてデスクトップにコピーされるのでしょうか?

  • VBA バッチファイルでコピーできない

    この質問は直近で出した質問を誤って締め切ってしまったため、再質問として書いてます。 以下のマクロを作りましたが、うまくいきません。 フォルダBにあるバッチファイルを実行するだけのマクロで、バッチファイルはフォルダAにあるファイルを自身のフォルダつまりフォルダBにコピーするものです。 マクロ Sub Test() Dim Str As String Str=shell("""" & folderB\batch.bat & """", vbnormalfocus) End sub Batch.batの中身 Copy "folderA\fileA" . '見えにくいですが、最後にピリオドがあります。 folderAやfolderBはそれぞれのフォルダのフルパスです。パスに空白を含むため " で囲むようにしてます。 実行すると、何故かフォルダBでなくてデスクトップにコピーされます。バッチファイルをクリックして直接起動すると、目論見通りフォルダBにコピーされます。コマンドプロンプトからフォルダBに移動し、バッチファイルを起動しても、目論見通りフォルダBにコピーされます。 マクロから起動した時だけ、どうしてデスクトップにコピーされるのでしょうか?

  • フォルダ・ツリーでZIPの階層表示

    Windows8のエクスプローラでフォルダ・ツリー(ナビゲーションウィンド)がZIPなどの圧縮ファイルまで階層表示されます。 これを圧縮ファイルを階層表示させない設定は無いものでしょうか?

  • 特定ディレクトリ以下の複数のフォルダ名とファイル名を一括で連番にするバッチの作成

    特定のフォルダ(ディレクトリ)以下の複数のフォルダ名とファイル名を 一括で連番にしてくれる方法(連番+拡張子のリネーム)を教えてください。 ソフトでは簡単ですが*.bat ファイルで実行するスクリプトを 知りたいので宜しくお願い致します 例えば フォルダ0 ├フォルダ1 │ ├ a.txt │ ├ b.jpg │ └ フォルダ2 │    └c.exe └ フォルダ3   └ d.exe という構造があったとして 000000 ├000001 │ ├ 000000.txt │ ├ 000001.txt │ └ 000000 │    └000000.txt └ 000002   └ 000000.txt この様に特定ディレクトリ以下の複数のフォルダ名とファイル名を連番 (上記は6桁ですが001,002…など3桁などに対応できる)にしたいのです 以下の方法で特定のフォルダ内のファイルを.txtに変更まではできましたが、 特定のフォルダより下層のファイルを.txtに変更はできませんでした。 REN E:\フォルダ\フォルダ\*.* *.txt 上記のスクリプトは特定フォルダにあるファイルは拡張子の変更が出来ますが、 そのフォルダより下層の複数のフォルダ名とファイル名の拡張子の変更をできないので、 *.batファイルで連番+拡張子のリネームを一括でするスクリプトの明記をお願い致します。 ご存知の方、どの様なご意見でも構いませんので ご回答頂けると幸いです。宜しくお願い致します。

  • ファイルリストを元に階層を保ったファイルコピー

    コピーしたいファイルのフルパスが書かれているtxtファイルを元に、復数ファイルのコピーを行いたいです。 下記の質問を元にbatを作成しましたが、階層は保たれないようで…。 xcopyでならいけるかと修正してみたものの、フルパスのせいか希望する動作になりませんでした。 http://okwave.jp/qa/q5030613.html ディレクトリ構造を保ちながらコピーできるbatの作り方、または上記可能なフリーソフトをご教示いただきたいです。

  • 「・・・.zipの一時ディレクトリ」フォルダについて

    「・・・.zipの一時ディレクトリ」フォルダについて お世話になります。 XP-homeを使っています。 [C]→[Document and Settings]→[PCuser]→[Local Settings]→[Temp] の中にある「・・・.zipの一時ディレクトリ」というファイルフォルダは削除しても大丈夫でしょうか? zipフォルダ内のワードファイルに編集を加え、同じzipフォルダに「上書き保存」と「名前を付けて保存」操作をしましたら前述の場所に保存されてしまったようです。そのフォルダ内のファイルがもう必要ないので削除したいと思い質問させていただきました。 このように保存した場合、「・・・.zipの一時ディレクトリ」フォルダに自動的に(?)保存されると言うのはウィンドウズでは普通のことなのでしょうか?それとも特別な意味でもあるのでしょうか? 宜しくご指導下さい。

  • 【ZIP】unixサーバーでディレクトリを保ちZIP圧縮する場合

    サーバー上でディレクトリ構造を保ったままZIP処理を行なう方法について勉強しています。 下記のような2つのファイルがサーバー上にあるとき /usr/home/xxx/html/base/dir1/file1.txt /usr/home/xxx/html/base/dir2/file2.txt 以下の処理をかけると、 zip -r /usr/home/xxx/html/data.zip /usr/home/xxx/html/base data.zip 内に「usr」を先頭にしたディレクトリ構造が生成されます。 しかしこれでは意味のない多重入れ子となり具合がよくありません。 何とか「usr」ではなく「base」が先頭になるよう指定はできないものでしょうか? 具体的にはdata.zip内に、以下が生成されてほしいわけです。 base/dir1/file1.txt base/dir2/file2.txt 方法をご存じの方、よろしくお願いいたします。 <環境> レンタルサーバー FreeBSD 6.2 操作はPHP5経由

  • フォルダ毎圧縮(Zip etc.)ができるソフト/ツール

    指定のフォルダ下のフォルダを、 まとめてではなく、フォルダ毎に圧縮してくれるソフトはないでしょうか? (フォルダ毎にZIPファイルを作ってくれる。) たとえば、下記の例で、 AAAフォルダを指定して、「フォルダ毎圧縮」をかけると、 B1フォルダ以下をまとめたB1.ZIPができ、 同様に、B2.ZIP、B3.ZIPができるようなツールです。  AAAフォルダ   B1フォルダ    C1aファイル    C1bファイル   B2フォルダ    C2aファイル   B3フォルダ    C3aファイル