请帮助我使用批处理在多个文件夹中创建 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
这是我之前的答案的更新版本,但是现在:
该 zip 文件的名称与每个文件夹的 *.idml 文件的名称相同
仅复制具有左心室在名字里
最后删除所有*.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