求教,如何用批处理将每个子文件夹下所有内容压缩为zip

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了求教,如何用批处理将每个子文件夹下所有内容压缩为zip相关的知识,希望对你有一定的参考价值。

F:\download下有100左右子文件夹,每个子文件夹中都有若干文件,现在想把每个子文件夹中的所有文件压缩成zip,求教能不能用BAT实现,7-zip和winrar都有

参考技术A @echo off
::设置7ZIP路径
set "zip=C:\\Program Files\\7-Zip\\7z.exe"
::设置操作目录
set "SourDir=F:\\download"

cd /d "%SourDir%"
echo 开始压缩……
for /f %%i in ('dir /a-d /b /s') do (
if "%%~xi" NEQ ".zip" (
"%zip%" a "%%~dpni.zip" "%%i">nul
::确认压缩文件解压后可用,把下面一行的echo去掉以删除源文件
echo del /f "%%i"
)
)
echo 处理完成&pause>nul

追问

你好,程序有用是没错啦,不过我的意思是把子文件夹内全部文件打包成一个zip,不是分别压缩,可以吗

追答@echo off
::设置7ZIP路径
set "zip=C:\\Program Files\\7-Zip\\7z.exe"
::设置操作目录
set "SourDir=d:\\test2"

cd /d "%SourDir%"
for /d %%i in (*) do "%zip%" a -mx7 "%%i.zip" "%%i"
:: 确认压缩文件解压后可用,删除下面一行的echo以删除源文件夹
 echo rd  /s /q %%i
)

参考技术B 是把每个文件单独压缩,还是把整个子文件夹进行压缩?追问

你好,是想把子文件夹内所有文件压缩成一个zip

追答@echo off & title 批量压缩 By 依梦琴瑶

::设置要处理的文件夹
set Folder=F:\\download

::设置压缩后是否删除原目录,1 为删除
set DelIt=0

::设置WinRAR的安装路径
set RarPath=%ProgramFiles%\\WinRAR

set Path=%Path%;%RarPath%

if "%DelIt%"=="1" set df=-df
for /d %%a in ("%Folder%\\*") do (
    rar a "%%~a.zip" -r -ep1 -m5 "%%~a\\*" -isnd %df%
)
pause

本回答被提问者采纳

求教一个关于在Linux下解压的问题

Linux解压缩文件一般用tar命令和unzip命令,tar命令用于tar.bz2和tar.gz文件的解压,unzip命令用于zip文件的解压。
tar命令参数解释:
-z参数:表示解压的是tar.gz文件(如果是tar.bz2就是-j)
-x参数:表示是执行解压缩操作而不是打包操作
-v参数:表示列出解压时的详细消息
-f参数:指定要解压的文件名
tar命令解压时还可以指定解压的目标目录,也就是把压缩文件的内容解压到哪个文件夹内,这个参数是-C(大写的C),例子:
解压tar.gz文件:tar -zxv -f test.tar.gz -C /home/user/target
解压tar.bz2文件: tar -jxv -f test.tar.bz2 -C /home/user/target
unzip命令参数常用的就是那个指定压缩文件内容,解压到哪个文件夹的参数,也就是指定解压缩的目标目录,这个参数是-d,例子:
unzip test.zip -d /home/user/target
参考技术A 什么问题呢?

以上是关于求教,如何用批处理将每个子文件夹下所有内容压缩为zip的主要内容,如果未能解决你的问题,请参考以下文章

如何用dos命令将档压缩成ZIP?

linux 如何用 unzip解压一个压缩包中的一个文件? tar可以

如何用bat调用bandizip加密压缩当前目录的所有文件夹?

如何用PHP实现微信支付,求教。新手!说明详细点

如何用java 将文件加密压缩为zip文件.

如何将文件夹的每个子文件夹中除最新文件外的所有文件压缩为每个子文件夹一个 ZIP 文件?