Sign in to follow this  
Followers 0
Cue

7 zip

3 posts in this topic

#1 ·  Posted (edited)

I tried looking for something simalar but couldnt find it. heres my simple script which uses command line 7zip to archive multiple files and folders in a directory to individual archives. It currently does it in .zip format but this can be easily changed. the .zip files would be in the same directory as the uncompressed originals.

This requires a copy of 7z.exe in the system32 windows folder and will only work for 32bit machines

#include <Process.au3>
#Include <File.au3>
#Include <Array.au3>



$folderpath = FileSelectFolder("Choose a folder.", "");choose a directory
$FileList=_FileListToArray($folderpath); array of files in directory
Dim $szDrive, $szDir, $szFName, $szExt, $i=1

ProgressOn("Multiple Zip", "0 percent", "Zipping")

    while $i<=$FileList[0]; do for all files in directory
        
        $Percent=Round((100/$FileList[0])*$i)
        
        $TsplitPath = _PathSplit($FileList[$i], $szDrive, $szDir, $szFName, $szExt);split filename and extension
        
        ProgressSet( $Percent, "Zipping:" & $FileList[$i],$Percent & " percent")
        
        RunWait("7z a -tzip "&"""" & $folderpath & "\(Zipped)\" & $szFName & ".zip"" """  & $folderpath & "\" & $FileList[$i] & """"   , "", @SW_HIDE  );run 7zip command line
        $i+=1;next file
        
    WEnd

ProgressOff()
MsgBox(0,"Multiple ZIp","Files Ziped to:"& @CRLF & $folderpath)
Exit
Edited by Cue

Share this post


Link to post
Share on other sites



Thanks for the help. Just out of interest, do you know if _RunDos() waits for the proccess to complete anyway. because it took 12 seconds for the script to execute.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!


Register a new account

Sign in

Already have an account? Sign in here.


Sign In Now
Sign in to follow this  
Followers 0