Still celebrating National IT Professionals Day with 3 months of free Premium Membership. Use Code ITDAY17


Automatically zip files with batch file

Posted on 2009-05-13
Medium Priority
Last Modified: 2013-12-01
Hi Experts,

I'm trying to make a batch script that automatically zips files and deletes them after worths. Because 7-zip is a powerful tool and easy to use in the command line, i have chosen to use it.

The problem is as following:
There is an input directory(Figure 1) that have subdirectories( subdirectories or numbered 1, 2, 3, 4, etc (Figure 2)). In these directories there are files (Figure 3). All these files need to be zipped one by one with a high compression ratio and deleted after worths. The deletion needs to take place right after the file has been zipped.

My idea was make a batch file with a for loop to zip and delete the file.

Please help me out here!

Question by:DonOetje
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
  • 2
LVL 17

Expert Comment

by:Shanmuga Sundaram
ID: 24372804
See here for learning how to use 7-zip in a batch file
LVL 17

Expert Comment

by:Shanmuga Sundaram
ID: 24372815
LVL 71

Accepted Solution

Qlemo earned 200 total points
ID: 24373213
Too bad 7zip doesn't allow for move ... We have to do it manually. I used the above recompression tutorial to construct a more simple batch for your requirements. The && is for preventing deletion after zipping error.
This batch will zip ANY pdf under the D:\opleveringen folder.

@echo off
for /F "tokens=*" %%F in ('dir /s/b D:\Opleveringen\*.pdf') do (
  "C:\Program Files\7-Zip\7z" a -t7z "%%~dpnF.7z" "%%F" -mx=9 && del "%%F"

Open in new window


Author Comment

ID: 24378692
Thanks for you input. I made its with the information you gave me.

I still have one problem. I made some test directories with 10 files in the directory (Figure 1). But when i run this script i only get 4 files (Figure 2), with all 10 files(Figure 3). How can i tune this script so it will zip all file apart of from the others?
@ECHO off
REM *Set options to control the visibility of environment variables in a batch file.
REM *Provide a source, destinaion and the path where to locate 7-zip
SET _source="C:\Test1"
SET _dest="C:\Test1"
SET _wrpath=C:\Program Files\7-Zip
REM *Check if the destination directory exist. If not the script will make it 
IF NOT EXIST %_dest% MD %_dest%
REM *Zip every file from the source directory and place the zip file in the destination directory, after worths delete the source file
FOR %%I IN (%_source%\*) DO (
	"%_wrpath%\7z" a -t7z "%_dest%\%%~nI.7z" "%%I" -mx=9
	REM && DEL "%%I" /I

Open in new window

LVL 71

Expert Comment

ID: 24379077
That is because the source files have an extension .pdf_*, and the file name is the same.
Change line 16 to maintain the file extension for the ZIP file.

"%_wrpath%\7z" a -t7z "%_dest%\%%~nxI.7z" "%%I" -mx=9

Open in new window


Featured Post

Will your db performance match your db growth?

In Percona’s white paper “Performance at Scale: Keeping Your Database on Its Toes,” we take a high-level approach to what you need to think about when planning for database scalability.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Being a system administrator some time we require to do things remotely, one of them is installing software. Here I am going to tell you how to install software through wmic (Windows management instrument console). I am not at all saying that this i…
I previously wrote an article addressing the use of UBCD4WIN and SARDU. All are great, but I have always been an advocate of SARDU. Recently it was suggested that I go back and take a look at Easy2Boot in comparison.
Finding and deleting duplicate (picture) files can be a time consuming task. My wife and I, our three kids and their families all share one dilemma: Managing our pictures. Between desktops, laptops, phones, tablets, and cameras; over the last decade…
Visualize your data even better in Access queries. Given a date and a value, this lesson shows how to compare that value with the previous value, calculate the difference, and display a circle if the value is the same, an up triangle if it increased…

721 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question