如何创建批处理文件来压缩多个文件夹内的文件?

如何创建批处理文件来压缩多个文件夹内的文件?

请帮助我使用批处理在多个文件夹中创建 zip,如下所示。

操作系统:机器上安装了 Windows 10 和 7 zip。抱歉,我没有任何以前的代码。

原文目录:

西班牙文文件夹

MC.indd
MC.idml
MC_LR.pdf

印度文件夹

MC.indd
MC.idml
MC_LR.pdf

应变为:

西班牙文文件夹

MC.indd
MC.idml
MC_LR.pdf
MC.zip 

印度文件夹

MC.indd
MC.idml
MC_LR.pdf
MC.zip 

MC.zip 应该包含 MC.idml 和 MC.pdf 文件。

总共有 30 个国家的语言文件夹。完成后,应从每个国家文件夹中删除所有 idml 文件。

答案1

这是我之前的答案的更新版本,但是现在:

  1. 该 zip 文件的名称与每个文件夹的 *.idml 文件的名称相同

  2. 仅复制具有左心室在名字里

  3. 最后删除所有*.idml文件

您必须将主文件夹(印度、英语文件夹所在的位置...)拖到批处理文件中。

在设置 Seven= 部分中,您必须指定 7zip 命令版本“7z.exe”的路径……

@echo off

:: Set path to 7z.exe here:
set Seven=C:\Program Files\7-Zip\7z.exe

IF /i exist "%~1" (set "Folder=%~1") else exit

pushd "%Folder%"
for /f "delims=" %%a in ('dir /b /ad') do call :CreateZip "%%~a"

del /q /s "%Folder%\*.idml"
exit

:CreateZip
set IDMLName=
pushd "%~1"
for /f "delims=" %%a in ('dir /b *.idml') do set "IDMLName=%%~na"
IF "%IDMLName%"=="" set "IDMLName=MC"
"%Seven%" a -tzip "%IDMLName%.zip" "*.idml" "*LR*.pdf"
popd
goto :EOF

在此处输入图片描述

相关内容