求教,如何用批处理将每个子文件夹下所有内容压缩为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的主要内容,如果未能解决你的问题,请参考以下文章
linux 如何用 unzip解压一个压缩包中的一个文件? tar可以