Batch file 使用bat和7zip循环浏览目录zip文件夹

Batch file 使用bat和7zip循环浏览目录zip文件夹,batch-file,7zip,Batch File,7zip,我正在尝试循环浏览一个目录,其中包含文件夹。 我想通过7zip压缩文件夹(因为其中一些文件非常大) 我的意思是,举个例子: 主文件夹 备份1 备份2 备份3 我希望它能为备份文件夹1-3创建一个单独的7zip文件。 以下是我得到的: @echo off set zip=7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on set directory="E:\Backup\" for /d %%i in (%directory%) do %zip%

我正在尝试循环浏览一个目录,其中包含文件夹。 我想通过7zip压缩文件夹(因为其中一些文件非常大) 我的意思是,举个例子:

  • 主文件夹
    • 备份1
    • 备份2
    • 备份3
我希望它能为备份文件夹1-3创建一个单独的7zip文件。 以下是我得到的:

@echo off
set zip=7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on
set directory="E:\Backup\"
for /d %%i in (%directory%) do %zip% "%%i.7z" "%%i%\*"
pause

但只要我这样做,它就会创建一个名为Backup的7zip文件,它不会为其中的每个文件夹创建一个单独的7zip文件。

您几乎完成了

@echo off
    set "zip=7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on"
    set "directory=E:\Backup"
    for /d %%i in ("%directory%\*") do %zip% "%%~fi.7z" "%%~fi\*"
    pause

这是另一种选择:

@echo off
cd /d "E:\Backup\"
set zip=7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on
for /d %%i in (*) do %zip% "%%i.7z" "%%i%\*"