Beefy Boxes and Bandwidth Generously Provided by pair Networks
go ahead... be a heretic
 
PerlMonks  

Re^2: 7zip a folder

by ytjPerl (Scribe)
on Oct 31, 2017 at 16:58 UTC ( [id://1202453]=note: print w/replies, xml ) Need Help??


in reply to Re: 7zip a folder
in thread 7zip a folder

I saw this command

Perl> open PIPE, '-|', '"\Program Files\7-Zip\7z.exe" e -so e:\UnxUtil +sSrc.zip 2>&1 1>nul' or die $@;;

which can extract zip file.

But I still do not know what is the syntax for compress folder. I move all the files into a folder then compress it.

Replies are listed 'Best First'.
Re^3: 7zip a folder
by dasgar (Priest) on Nov 02, 2017 at 07:54 UTC

    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.

Re^3: 7zip a folder
by soonix (Canon) on Nov 03, 2017 at 07:43 UTC
    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.
      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
        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.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1202453]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others meditating upon the Monastery: (2)
As of 2024-04-20 03:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found