2019/4/21 更新 (主なもの)
・元のファイルの拡張子を付けずに圧縮するモードを追加しました
・元のファイル名と全く同じ場合には圧縮をスキップするようにしました
・(2019/4/20 リリース版の不具合修正:すべて拡張子なしモードになってました。ごめんなさい)
追加したファイル
ARC_PRX_7z_NoExt.cmd
ARC_PRX_ZIP_NoExt.cmd
変更したファイル
Main.wsf
ARC_PRX_CMN.cmd
最新版のダウンロードはこちら
ZipTool_20190421.zip
・圧縮処理に必要な 7z.exe / 7z.dll は同梱しておりません。
・別途 お好みの7-zip バージョンを探して 入手してください。
・Ver 19.00 正式版 までは動作確認済み。
-------------------------------------------------------------------------------------------
2015/8/17 更新 。以下更新点(主なもの)
・ツールのスクリプト一式を更新しました(特定のパスにおける不具合修正)
・コマンドラインパラメータを調整(スクリプトを見てお好みに変えてください)
・7-zip の 9.20から 15.06Beta のいずれの 7z.exe/7z.dll でも動くことを確認しました。
・圧縮中のフロント画面(グレーの画面)に7-zip の Exeのバージョン情報を表示。
Windows用のコマンドライン 圧縮は 7-Zipのコマンドライン版 7z.exe (7za.exe) が今のところ一番だ!: NN Space BLOG-NN空間ブログ
こちらで、コメントをくれた方に刺激されて,忘れていたことを思い出しました。
ツールはこちらになります。
ZipTool_20150817.zip
・圧縮処理に必要な 7z.exe / 7z.dll は同梱しておりません。
・別途 お好みの7-zip バージョンを探して 入手してください。
・Ver 9.20 - 16.02 正式版 までは動作確認済み。
あとちなみに、圧縮中の画面は以下のようになります。
※7-zipのバージョン情報を1行目に表示@2015/8/17

この画面の裏でもう一つ圧縮の本処理プロセスが動いています。
-------------------------------------------------------------------------------------------
--- 以下ツールの説明 ---
-------------------------------------------------------------------------------------------
別途、7-zip をインストールしたフォルダにあるファイル(7z.exe, 7z.dll)が必要です。
7-Zip
↑※7-zipをインストールしなくても exeタイプのインストーラを解凍した中にある 7z.exe, 7z.dll を取り出してもOKです!
以下のようにインストーラを「解凍」:

・どんなツール?
TanZip(単ZIP)をご存知のかたは理解しやすいと思いますが、ファイル名やフォルダ名を元に複数ファイル・フォルダを連続して同名のZIP/7-zipファイルに圧縮するものです
・導入方法
ファイルをダウンロード後に、適当なフォルダに解凍します。
7-zip もインストールしておいてください。7z.exe, 7z.dll を入手したらあとは アンインストールしてかまいません。(前述の通り、7z.exe, 7z.dll さえ手に入れば PCに 7-zip をインストールは不要です)
その2つのファイルを、解凍したフォルダの中へ突っ込みます。

7-zipをインストールし別途併用する場合、7z.exe, 7z.dll を移動させないように注意してください。
・プログラムの使い方:圧縮方法
添付の6種類の圧縮方法を定義したいずれかのバッチファイル(*.bat)へ
圧縮したいファイルを1つまたは複数ドラッグドロップで圧縮できます。
圧縮の仕方は8通りあります。
お好みのパターンのバッチファイルをショートカット登録して使ってください。
ARC_PRX_7z.cmd …ファイル名(拡張子あり)+拡張子7z で圧縮
ARC_PRX_ZIP.cmd …ファイル名(拡張子あり)+拡張子zip で圧縮
ARC_PRX_7z_NoExt.cmd …ファイル名(拡張子なし)+拡張子7z で圧縮
ARC_PRX_ZIP_NoExt.cmd …ファイル名(拡張子なし)+拡張子zip で圧縮
ARC_PRX_7z_NOW.cmd …ファイル名(拡張子あり)+現在時刻+拡張子7z で圧縮
ARC_PRX_ZIP_Now.cmd …ファイル名(拡張子あり)+現在時刻+拡張子zip で圧縮
ARC_PRX_7z_Upd.cmd …ファイル名(拡張子あり)+ファイルの更新時刻+拡張子7z で圧縮
ARC_PRX_ZIP_UPD.cmd …ファイル名(拡張子あり)+ファイルの更新時刻+拡張子zip で圧縮

圧縮後は元のファイルと同じ場所へ保存されます。

・「送る」への登録にも対応(登録は各自手作業でお願いします)

手短ではありますがすが説明は以上です。
ここに至るまでの関連記事:
7-zipコマンドラインで エラーコード2(Fatal)が出てしまい悩んでいた: NN Space BLOG-NN空間ブログ
7-Zipのコマンドライン版は秀逸(もちろんGUI版も): NN Space BLOG-NN空間ブログ
同じバージョンV2.31で2回も更新していたTAR32.dll: NN Space BLOG-NN空間ブログ
zip.exe 3.0 は まだ正式なWin32向けのバイナリが無いらしい: NN Space BLOG-NN空間ブログ
コレは良い圧縮解凍ソフト: NN Space BLOG-NN空間ブログ
ファイルやフォルダを連続圧縮するツール(VB Script製): NN Space BLOG-NN空間ブログ
↑ここからがすべてのスタートだった。
このときのソースコードと、今回のソースコードを比較すると,今までにどんな技を取り込んできたのかが思い出されてなんだか懐かしい。
【便利ツール紹介:Win&Mac&Linuxの最新記事】
http://blog.sakura.ne.jp/tb/53208953
※言及リンクのないトラックバックは受信されません。
この記事へのトラックバック
すべてのコメントに目を通していますので心配いりませんよ。
自分でも仕事で毎日使っている便利ツールになりました。
その成果をこのようにわかりずらい所に公開したのにもかかわらず見つけて使っていただけてうれしく思っています。
煩わしかった個別圧縮もこれで一発です!
本当ありがとうございます。
このツールはいまだに毎日使います。7-zipの素性が良いというのも長く使っていける理由のひとつですね。
各種アーカイブを閲覧する、解凍するツールとしても7-zip のGUI版は優秀だと思います。
これさえあれば ExpLzhとかLhaplusなどが まったくいらない感じです。(仕事では特殊な拡張子はほとんど扱わないので)
例)オリジナル:1234.zip
現状の自動生成:1234.zip.zip
したい自動生成:1234.zip
このツールが細々と需要があるようでうれしい限りです。
例として挙げただけかもしれませんが、ZIPをさらに圧縮するなんて変わっていますねw
それはさておき、したい自動生成のパターンはできなくはないです。
週末にでも検討してみます。
例えば
1234.txt を圧縮したら 1234.zip にするのは簡単です。このZipを中身閲覧すると 1234.txt が格納されているイメージです。
1234.zip を再度圧縮して 1234.zip にするのはどういう結果になることを想定していますか。
圧縮前の 1234.zip の中身は abc.txtが入っているとしましょう。
その 1234.zip を再度 ZIP圧縮した中身は 1234.zip が入っていて、さらにその中には abc.txt が入っているということでしょうか。
これだと単純な改造ではできないです。
例えがわるかったですね。申しわけありません。
管理人様が例にだされている「1234.txt を圧縮したら 1234.zip」を想定しています。
現状のソフトでもDXFファイルを連続圧縮するのに重宝しているのですが、「1234.dxf.zip」に圧縮されたファイルを手作業で「.dxf」を削除して利用しております。
では、同じ名前で圧縮はできないように実装します。
記事本編からツールをダウンロードしてお試しください。
何かおかしいところがあったらコメントください。
2019/4/21 版をダウンロードしてご利用ください。
末永く、利用させていただきます。
きちんと使っていただいて、フィードバックいただけることはとてもうれしいので、連絡いただけることは作者の励みになります。
今回も楽しみながらバージョンアップさせていただきました。
職場では毎日欠かさず使っているツールになってます。
更新前から使わせてもらっています。
以前から気になっていたのですが、圧縮率は7z.exeで設定した圧縮率になっているのですよね??
ソースコードを書き換えれば任意の圧縮率にできますよ。
Main.wsfを開いて以下の記述を探し、 -mx9 の部分を変えてください。
aCmdLineSuffix = "-m0=LZMA2 -ssw -mmt -w -bd -ms=on -mx9"
1,3,5,7,9 の圧縮レベルがあって、9は最高圧縮率です。
https://sevenzip.osdn.jp/chm/cmdline/switches/method.htm#7Z
7zの連続圧縮コマンド、感動しました。
早速ですが、
パスワード付のコマンドファイルをつくりたいのです。
どうすればいいのでしょうか?
お教えを賜れれば幸いです。
まだここを見てますかね?
コマンドラインパラメータに、 -p を追加すればよいです。
どうすればよいのか?という問いには、パスワードをどのように設定するのがあなたにとって便利なのか、という質問をさせてください。
Main.wsfの62行目に 7zのコマンドラインパラメータが書いてあります。
aCmdLineSuffix = "-m0=LZMA2 -ssw -mmt -w -bd -ms=on -mx9 -p"
と書きかえれば、
連続圧縮の一つ一つのファイルでパスワードを聞いてきます。
そのパスワード入力画面が、後ろに隠れているので圧縮がストップしたかのように見えてしまいますね。
毎回同じパスワード(XYZ)でよい というなら、
それ専用のスクリプトに書き換えてもよいです
例えば
aCmdLineSuffix = "-m0=LZMA2 -ssw -mmt -w -bd -ms=on -mx9 -pXYZ"
こういう風に書き換えます
以下をご参考にしてください。
https://sevenzip.osdn.jp/howto/dos-command-password.html
私の作る連続圧縮に組み込むなら以下のようにしたいと思います(検討中)
・パスワードを事前に1回だけ入力し、すべて同じパスワードで保存する
・パスワードを入力しなかった場合には、通常のパスワードなし圧縮をする
検討事項
パスワードの入力は、ダイアログボックスにするか、コンソール入力にするか
パスワードを入力しない場合には、圧縮をキャンセルするかどうか(パスワード圧縮を取りやめるという意味を「パスワードなし」にもたせるかどうか)
アドバイスありがとうございます。
使うcmdファイルをzipの分を使っていました。
7Zipのところに『-p***』を入れてできました。
誠にありがとうございます。
こんな便利ツールを作れるのはとてもすばらしいスキルをお持ちで、うらやましいかぎりです。
いろいろご対応いただき、ありがとうございました。
末永く、利用させていただきます。
ただお礼を申し上げるばかりです。
自力でできたようで何よりです。
私のプログラムのバージョンアップはいつになるかちょっとわかりませんが、パスワード入力対応版はあってもよいのかなと思っています。