Fork me on Gitee

压缩指定文件夹下所有文件夹,并输出压缩后的文件列表

1, 赋值下面代码另存为:compressionSpecifiedPath.bat  注意文件后缀为(.bat)

echo off & color 0A
@echo off &setlocal enabledelayedexpansion

rem 压缩指定目录下所有的文件夹到临时目录,并输出压缩后文件的列表和被压缩的目录

rem 不提示删除之前生成的问题,不存在也不提示
del /Q /F /A list.csv 2>nul

:input
cls
set input=:
set /p input=      请输入要处理的文件夹:
set "input=%input:"=%"
:: 上面这句为判断%input%中是否存在引号,有则剔除。
if "%input%"==":" goto input
if not exist "%input%" goto input
for %%i in ("%input%") do (
	if /i "%%~di"==%%i goto input
)
pushd %cd%
cd /d "%input%">nul 2>nul || exit
set cur_dir=%cd%
popd
echo 压缩后的文件存放位置,重命名后存放的目录,重名名的名称(标准日期格式:20220105) >list.csv
rem 循环输入的文件夹下的文件夹,并压缩每个文件夹到临时目录
for /f "usebackq delims=" %%i in (`dir /B /a:d  "%input%"`)  do (
   rem 压缩文件
   .\7z\7za.exe a "%input%\tmp\%%i.zip" "%input%\%%i"
   rem 输出文件路径及文件名到list.csv文件里
   echo %input%\tmp\%%i.zip,%input%\tmp\rename\,%%i>>list.csv
)

pause
if not exist list.csv goto no_dir
start list.csv
exit
 
:no_dir
cls
echo    %cur_dir% 文件夹下没有单独的文件夹
echo  ------------------------------End----------------------------------------------
pause注意

注意:7za.exe需要自行下载,并新建一个文件夹【7z】,具体操作见下图

2.下载红框内的文件(下载地址:https://7-zip.org/download.html),并解压到7z文件里

如下图

文件夹内的内容

 

3.双击【compressionSpecifiedPath.bat】出如下界面

 

压缩前的效果如下图

 

 

复制路径到黑框中,回车

所有都是ok说明成功了。

 

 

 压缩后,文件夹里资料如下,见【tmp】文件里

 

 

 

打开黑窗口,按任意键,自动打开excel文件如下图

 

 

 该文件存放位置:

 

 

如果觉得另存操作麻烦,也可以直接下载我制作好的文件,下载地址如下:

链接:https://pan.baidu.com/s/11m1n3QhlVAZDJCBQpSxKug
提取码:yfy5

posted @ 2022-12-04 17:52  JoePotter  阅读(245)  评论(0编辑  收藏  举报
``