Archiving - How Do I Create Separate Zip Files For Each Selected File - Directory in 7zip - Super User
Archiving - How Do I Create Separate Zip Files For Each Selected File - Directory in 7zip - Super User
Home
How do I create separate zip files for each selected file/directory in 7zip? Ask Question
Questions
Asked 8 years, 6 months ago Active 2 months ago Viewed 98k times
Tags
Unanswered
31 This week, #StackOverflowKnows the
coronavirus’s long tail, sulfuric acid…
7z.exe is the command line version of 7-Zip 1 Recursively zip all files in a directory into
individual zip files… but in a separate
%~ni - this expands the %i variable to just the file name - no extension directory
If you wanted to just add the folders for a given directory, the command is a bit more complex
as by default FOR just works with files. We need to feed it some additional information: Hot Network Questions
Responding to planeswalker with doubling season
FOR /F "usebackq delims=?" %i IN (`DIR /B /A:D`) DO 7z.exe a "%i.7z" "%i" in play
The /B in DIR is for bare format - just the name begin tran instead of use db_name inside a SQL
Job for executing Stored Procedure
The /A:D in DIR is for restricting the results by attribute, the D is for directories
Capacitor Impedance ESR vs Frequency Curve
If you want to encapsulate this inside of a batch file, the only change you will need to make is to Find the Inverse Neighbor Pairs
double escape the %i variable:
My friend listed my name as a co-author on two
journal papers without my permission
FOR %%i IN (*.*) DO 7z.exe a "%%~ni.7z" "%%i"
pleTriwapt Sgpin (Triplet Swapping)
share improve this answer edited Jun 18 '14 at 22:53 answered Jul 18 '11 at 17:14 How to put a big equation in a single slide?
show 2 more comments Now that I have iCloud, what benefit does Time
Machine provide?
dir *.csv | ? { $_.Length -lt 18900 -and $_.LastWriteTime -ge [DateTime] "07/01/2011" }
EDIT If you want zip files instead of 7-zip files, use InfoZip's zip.exe instead.
share improve this answer edited Jul 18 '11 at 17:43 answered Jul 18 '11 at 17:33
jftuga
2,847 1 16 23
5 7-zip can also create zip files - have a look at the -t flag. Example: 7z a -tzip archive.zip *.exe –
Goyuix Jul 18 '11 at 22:48
Ok, $_.BaseName $_.Name works, but how do I do $_.BaseName $_.Name on another drive, in another
directory? Say f:\test\file1.7z etc. – Grumpy ol' Bear Jul 20 '11 at 9:06
add a comment
You can download and install 7zip plugin for Total Commander from
http://www.ghisler.com/plugins.htm Once you do that on the right side of the window from your
screenshot there will be another selection for 7zip compression. With that option you can
0
accomplish exactly what you are asking for.
add a comment
I've just been working on exactly this problem and one of the issues I found was duplication of
the folder name within the archive, i.e. when compressing a folder called "foo" an archive
containing .\foo\fighters.txt is produced instead of just one containing fighters.txt .
0
The answer, therefore is to go into the directory being processed and have the archive appear
in the previous (root) directory, then return to that directory in order to process the next folder.
It is also important to have 7ZIP ignore existing ZIP and CMD files within the root directory to
prevent them ending up within the archive, hence the -x!*.zip and -x!*.cmd exclusion
arguments.
@echo off
REM Ensures variables set within the batch file are local to
REM this script only and will be removed when finished.
setlocal
:zip_exist
Echo.
Echo Note: for this script to work, compression of
Echo pre-existing zip files is not possible.
:end
pause
The above code should be copied to a batch file such as "compress_dirs.cmd" and run as
admin from the directory containing the folders you wish to compress.
share improve this answer edited Jun 23 '19 at 7:10 answered Jun 23 '19 at 5:57
Pi Hard
51 1 3
add a comment
If you need to keep the folder structure, and save each file in its own structure, try this:
Save this command in a file with extension .bat and put it in the folder you need to zip:
0
FOR /R %%i IN (*.*) DO "C:\Program Files\7-Zip\7z.exe" a "%%i.7z" "%%i" -sdel
Note:
-sdel: Deletes the original file (optional, if you only want to keep the compressed file)
add a comment
Highly active question. Earn 10 reputation in order to answer this question. The reputation requirement
helps protect this question from spam and non-answer activity.
Not the answer you're looking for? Browse other questions tagged zip archiving 7-zip