- ベストアンサー
バッチファイルでのzip形式フォルダへのコピー方法
非圧縮のファイルをzip形式フォルダへコピーできるのでしょうか?(当方、バッチファイルの勉強中) copy,xcopyで試してみたのですが、コマンドの実行結果はエラーにはなりませんが(コピーできている?)、zip形式フォルダをエクスプローラで内容を確認しようとすると「圧縮フォルダは無効であるか、または壊れています」と表示されます。 copy,xcopyは扱えない? それともパラメータの指定が必要? 何かのミス? 他に、コマンドがある? 以上、教えて!goo (osはxpsp2を使用)
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
回答の前に、質問者さんの根本的な誤解について解説しておきたいと思います。 まず、zip形式について。 zipというのは、たくさんある圧縮/書庫ファイルの形式のひとつです。従って「フォルダではありません」 WindowsXPは、海外で非常によく使われているzip形式について、標準でフォルダのように中身が扱えるようなっていますが、これは厳密には「エクスプローラの機能」です。 エクスプローラ以外のプログラム(バッチファイルが稼動するコマンドプロンプトも然り)から処理する場合、これはフォルダではなく、ファイルなわけです。 copyコマンドやxcopyコマンドを使った場合、結果としては、そのファイルを、zipファイルの名前で上書きするという処理になる為、もとのzipファイルは無くなり、エクスプローラがzipだと思って処理しようとすると、壊れてると言われるわけです。 実際にバッチファイルでzipファイルを取り扱う場合は、そのようなツールを外部から導入する必要があります。 このようなツールはたくさんの種類がありますが、共通するのは、Windows標準のコマンドではないため、パスの通ったフォルダにそのコマンドを入れておく等、いくつか気をつけないといけない点があります。 配布する場合なども、バッチファイルといっしょにそのコマンドも配布する必要があります。 これは、バッチファイルの問題ではないので、コマンドラインアーカイバについて、先に勉強した方が良いでしょう。コマンドプロンプトで手でコマンドを叩いてzipファイルを作成したり解凍したりできれば、それをバッチファイルにするのは容易いです。 以上
その他の回答 (1)
- nacamk
- ベストアンサー率50% (2/4)
やりたいことが、バッチファイルでの ZIP形式ファイル作成ならば 下記のサイトが役に立つと思います
お礼
「根本的な誤解」についての解説、理解しました。よく考えてみると、当初はファイル形式として認識しておりましたが、「圧縮フォルダ」の名称でいつのまにか(というか、Windows標準のコマンドで圧縮をしたいという脅迫観念から)誤解に至ったようです。 諸事情により、「外部からのツールの導入は、できない状況」にありますので、Windows標準のコマンド(COMPACT)で圧縮することにしました。