I'd suggest first reading the 7-zip help to learn how to use it's command line interface. You'll need to understand how to run the command outside of Perl before you can incorporate that command inside your Perl code.
I believe that the general syntax that you're looking for is:
"C:\Program Files\7-Zzip\7z.exe" a -tzip my_archive.zip C:\my_data\ -r
However, putting that into your Perl code and trying to capture the output (STDOUT and/or STDERR) may be a challenge. I apologize for not being able to describe this using correct terminology. The 7z.exe is at times reusing lines in STDOUT to show progress. I could be wrong, but I think that behavior will causes challenges when trying to caputure output messages from the 7z.exe utility.
| [reply] [d/l] |
I second dasgar's answer, especially the first paragraph. That said, I have compressed things using something like the following, which would compress all .txt files in current and subdirs into target.zip: ...
use Data::Dumper;
...
my @cmd = (
'c:\Program Files\7-Zip\7z.exe',
'a', '-mx9', '-r',
'target.zip',
'*.txt',
);
print 'about to execute: ', Dumper \@cmd;
system @cmd;
The 7zip man page is not on their home page, but over there you can have a glance.
| [reply] [d/l] |
Hi Soonix,
It is working, Thanks!
I am just wondering if there is a command to zip file and also delete what we've archived.
Or we just zip files then to delete them using two steps.
Thanks
| [reply] |
You'd have to implement this yourself. It seems to me the creators of 7-zip aren't willing to implement this because it is too easy to destroy a freshly created archive after all the files are compressed and deleted.
| [reply] |