OS: Windows XP


  1. Support compress/uncompress zip format
  2. Like gzip can use the original file name as archive file name, so no need to specify archive file name. gzip target_folder, so the output will be target_folder.zip.
  • Are you looking for more of a command-line tool, or a GUI'd one? – Isxek Mar 2 '10 at 21:33
  • gzip -c writes to stdout leaving original file untouched. Is this what you mean? – Umber Ferrule Mar 2 '10 at 21:53
  • @Isxek - command-line tool. thanks. @Umber Ferrule - I meant 'gzip target_folder' only. – Stan Mar 2 '10 at 22:21

7-zip has this behavior and can compress/uncompress zip format:

alt text

As you can see the file extension has been stripped, and the rest of the file name used as the archive name.

Edit: For a command-line solution, you can still use 7-zip. Check out my script here. You can modify it like so:


use warnings;
use strict;

exit unless @ARGV;

my $path = "C:\\Program Files\\7-Zip\\7z.exe"; # modify this accordingly
my $infile = (split /\./,$ARGV[0])[0];

system("\"$path\" a $infile.zip @ARGV");

Just tested it on my fasm folder:

alt text


The simplest thing you could do (if you only want to compress one file or directory tree per archive) is to put one of the following lines into a batch file in your 7-Zip install directory (say zip.bat):

For a Zip archive: 7z.exe -tzip -r a %~n1.zip %1
For a 7-Zip archive: 7z.exe -r a %~n1.7z %1

And then call with: zip.bat target_folder


Not the answer you're looking for? Browse other questions tagged or ask your own question.