7Zip 压缩目录

7Zip 压缩目录

我想使用 7 zip 压缩和存档文件夹,但我希望它排除现有.7z文件(如果存在),而不是使用.7z.7zext 复制它们。我发现了这一点,但它复制了已经压缩的文件

for /R "D:\Test\AAPS - 54" %%F in (*) 
do (
    C:\progra~1\7-zip\7z.exe a -mx9 "%%~dpnxF.7z" "%%F"
    if exist "%%~dpnxF.7z" del "%%F"
    )

答案1

我已将批处理文件更改为此,这似乎解决了我的大部分问题,但如果有人有任何想法,我仍然希望找到更好的方法

对于/R“D:\Test\AAPS - 54\AAPS - 54 - 复制”%%F 在()执行(C:\progra~1\7-zip\7z.exe a -x!.7z -mx9 "%%~dpnxF.7z" "%%F" 如果存在 "%%~dpnF.7z" 删除 "%%F.7z" 如果存在 "%%~dpnxF.7z" 删除 "%%F")

答案2

为了避免压缩预先存在的 .7z 文件,请在 FOR 循环中使用带有 /ad 开关的 dir 命令仅列出目录,然后将每个目录传递给要使用的 7z.exe 命令。

例如,要压缩“AAPS - 54 - Copy”文件夹的每个子目录而不压缩任何现有的 .7z 文件,请执行以下操作:

for /f "tokens=*" %%A in ('dir /s /b /ad "D:\Test\AAPS - 54\AAPS - 54 - Copy"') do (
     @if not exist "%%A.7z" "%PROGRAMFILES%\7-zip\7z.exe" a -t7z "%%A.7z" "%%A")

您可以将“a -tz7”替换为您想要传递的任何参数,以压缩和存档您的文件夹。

相关内容