How to compress files exist in one folder into seperated .7z files


Recommended Posts

Hello,

If I've a folder includes 10 .mp4 files.

I'd like to compress these 10 files using 7z, so I right click each file and do the process to add to archive.

The result is 10 compressed .7z files.

I do not want to compress all files into one big archive.

My question is how to comprress each file of these 10 .avi seperately once into .7z, or in other word in one step instead of re-do the process for 10 times?

If there is any other tool to do the job it will be good as well.

Link to comment
Share on other sites

drag-and-drop onto batch file

http://dropcanvas.com/w7u6a/1


@echo off
rem 7z.exe path
set sevenzip=
if [%1]==[] echo file not found&pause&exit
if "%sevenzip%"=="" if exist "%ProgramFiles(x86)%\7-zip\7z.exe" set sevenzip=%ProgramFiles(x86)%\7-zip\7z.exe
if "%sevenzip%"=="" if exist "%ProgramFiles%\7-zip\7z.exe" set sevenzip=%ProgramFiles%\7-zip\7z.exe
if "%sevenzip%"=="" echo 7-zip not found&pause&exit
cd /d %~dp1||(echo ERROR&pause&exit)
echo %~dp1
echo %~x1
pause
for %%a in (*%~x1) do "%sevenzip%" a "%%~na.7z" "%%a"
pause
[/CODE]

Link to comment
Share on other sites

OziZtl.jpg

PgO0Cl.jpg

This is the folder I want to compress files included into seperated files.

When I run the batch file I get this error that file not found, and when I press any key to continue I found it close itself.

Please help.

Link to comment
Share on other sites

http://dropcanvas.com/w7u6a/3


@echo off
cd /d %~dp0
rem 7z.exe path
set sevenzip=
if "%sevenzip%"=="" if exist "%ProgramFiles(x86)%\7-zip\7z.exe" set sevenzip=%ProgramFiles(x86)%\7-zip\7z.exe
if "%sevenzip%"=="" if exist "%ProgramFiles%\7-zip\7z.exe" set sevenzip=%ProgramFiles%\7-zip\7z.exe
if "%sevenzip%"=="" echo 7-zip not found&pause&exit
set extension=.mp4
for %%a in (*%extension%) do "%sevenzip%" a "%%~na.7z" "%%a"
pause
[/CODE]

  • Like 1
Link to comment
Share on other sites

http://dropcanvas.com/w7u6a/3


@echo off
cd /d %~dp0
rem 7z.exe path
set sevenzip=
if "%sevenzip%"=="" if exist "%ProgramFiles(x86)%\7-zip\7z.exe" set sevenzip=%ProgramFiles(x86)%\7-zip\7z.exe
if "%sevenzip%"=="" if exist "%ProgramFiles%\7-zip\7z.exe" set sevenzip=%ProgramFiles%\7-zip\7z.exe
if "%sevenzip%"=="" echo 7-zip not found&pause&exit
set extension=.mp4
for %%a in (*%extension%) do "%sevenzip%" a "%%~na.7z" "%%a"
pause
[/CODE]

Amazing you are the man and thanks a lot.

Please one last thing, please in this little script may you tell me what is the setting for the 7z to get the most maximum compression?

Thanks a lot.

Link to comment
Share on other sites

In the future, just:

  1. Select the files or folders
  2. Right click (assuming you enabled 7z shell integration)
  3. Go to7-zip
  4. Click add to archive
  5. Change archive format to 7z
  6. Choose a file size in the section "split to volume, bytes"
  7. Press OK

Seeing as you want 10 files, just divide the total uncompressed file size in a Google search like this:

49.75 megabytes in bytes (Or whatever the size your file selection is)

Then just divide the number by 10 or whatever amount of files you want and enter this into "Split to volumes, bytes"

Link to comment
Share on other sites

for %%a in (*%extension%) do "%sevenzip%" a "%%~na.7z" "%%a"

->

for %%a in (*%extension%) do "%sevenzip%" a -mx "%%~na.7z" "%%a"

have fun :)

what does -mx means?

In the future, just:

  1. Select the files or folders
  2. Right click (assuming you enabled 7z shell integration)
  3. Go to7-zip
  4. Click add to archive
  5. Change archive format to 7z
  6. Choose a file size in the section "split to volume, bytes"
  7. Press OK

Seeing as you want 10 files, just divide the total uncompressed file size in a Google search like this:

49.75 megabytes in bytes (Or whatever the size your file selection is)

Then just divide the number by 10 or whatever amount of files you want and enter this into "Split to volumes, bytes"

But I do not want to split anything at all and want to make it each file compressed seperated.

Link to comment
Share on other sites

http://sevenzip.sour...d.htm#SevenZipX

-mx=5 normal compression

-mx=7 maximum compression

-mx=9 ultra compression

-mx is identical to -mx=9

edit:

i ran some tests

Path = mx5.7z

Method = LZMA2:24 BCJ

Physical Size = 6591553

Path = mx7.7z

Method = LZMA2:24m BCJ

Physical Size = 6567395

Path = mx9.7z

Method = LZMA2:24m LZMA:20 BCJ2

Physical Size = 6443632

Path = mx.7z

Method = LZMA2:24m LZMA:20 BCJ2

Physical Size = 6443632

  • Like 1
Link to comment
Share on other sites

Not sure I understand the point of this exercise.. Mp4 files rarely compress much at all, no matter what setting you tell your compression software to use.

I just did a test setting to ultra, and the 7z is actually bigger ;)

post-14624-0-28569400-1354972586.png

Link to comment
Share on other sites

So how much compression are you getting - this exercise seems completely pointless to me if what your saving is a few kb.

Link to comment
Share on other sites

  • 6 years later...

Hello,

 

I know this thread is very old, but I must leave a reply because I find this is perfect solution for archiving multiple files to separate .7z archives!

 

I'm using Windows 10 Pro x64 and 7Zip tool.

 

First you need to download latest version of 7Zip: Download 7-Zip

 

I'm using script in this way and works perfectly:

 

1. Create blank .txt file

2. Enter this code in blank .txt file:

@echo off
cd /d %~dp0
rem 7z.exe path
set sevenzip=
if "%sevenzip%"=="" if exist "%ProgramFiles(x86)%\7-zip\7z.exe" set sevenzip=%ProgramFiles(x86)%\7-zip\7z.exe
if "%sevenzip%"=="" if exist "%ProgramFiles%\7-zip\7z.exe" set sevenzip=%ProgramFiles%\7-zip\7z.exe
if "%sevenzip%"=="" echo 7-zip not found&pause&exit
set extension=.pdf
for %%a in (*%extension%) do "%sevenzip%" a -mx "%%~na.7z" "%%a"
pause

3. In code change line set extension=. to extension of files that you want to add in archive

4. Save file as, for example separate-archive.bat (you must change extension from .txt to .bat) !!

5. Copy newly created separate-archive.bat file to folder where you want to archive multiple files in separate .7z archives

6. Double click on copied separate-archive.bat

7. Done! Dobule click on file opens a command line and files will be archived in separate .7z archives with Ultra compression

8. Delete separate-archive.bat file from folder where you done archiving

 

If you want different compression level you must change -mx command to desired compression level:

On 12/8/2012 at 10:39 AM, yxz said:

http://sevenzip.sour...d.htm#SevenZipX

-mx=5 normal compression

-mx=7 maximum compression

-mx=9 ultra compression

-mx is identical to -mx=9

for %%a in (*%extension%) do "%sevenzip%" a -mx "%%~na.7z" "%%a"

 

I'm using 7-Zip tool for years, but this is my first use in batch mode in command line.

 

I'm open for suggestions if you have some :)

 

Thank you very much!

 

Happy archiving!

 

-denahv

Link to comment
Share on other sites

  • 1 month later...
  • Nick H. locked this topic
This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.