【发布时间】:2012-03-06 13:39:04
【问题描述】:
有没有办法一次将文件/文件夹添加到多个 zip 文件中。例如:
更新:
folder1
folder2
file1
file2
档案:
archive1.zip
archive2.zip
archive3.zip
我需要将更新添加到所有档案,而不是打开所有档案并在其中粘贴更新。
有什么办法吗?
或者是否有其他存档程序可以做到这一点?
【问题讨论】:
-
属于超级用户
有没有办法一次将文件/文件夹添加到多个 zip 文件中。例如:
更新:
folder1
folder2
file1
file2
档案:
archive1.zip
archive2.zip
archive3.zip
我需要将更新添加到所有档案,而不是打开所有档案并在其中粘贴更新。
有什么办法吗?
或者是否有其他存档程序可以做到这一点?
【问题讨论】:
这可以使用批处理文件来完成,例如 WinRAR。
@echo off
if not exist archive*.zip (
echo There are no archive*.zip files to update in
echo.
echo %CD%
echo.
pause
goto :EOF
)
set "ErrorCount=0"
for %%I in (archive*.zip) do (
"%ProgramFiles%\WinRAR\WinRar.exe" u -afzip -cfg- -ep1 -ibck -inul -r -y "%%I" folder1 folder2 file1 file2
if errorlevel 1 (
echo Error on updating %%I
set /A ErrorCount+=1
)
)
if not "%ErrorCount%" == "0" (
echo.
pause
)
set "ErrorCount="
对于每个 archive*.zip 文件,调用 WinRAR 来更新包含两个文件夹和两个文件的 ZIP 文件。
如果找到的所有 ZIP 文件都可以成功更新,则批处理完成且不打印任何消息且不暂停。否则批处理文件会输出无法更新的 ZIP 文件,例如由于设置了只读属性,并在完成之前暂停批处理,以便用户可以阅读错误消息。
有关 WinRAR 命令u 的详细信息以及在 WinRAR 中从菜单帮助 帮助主题,在标签 Contents 上打开项目 命令行模式 并至少阅读帮助页面:
要了解其他使用的命令及其工作原理,请打开命令提示符窗口,在其中执行以下命令,并仔细阅读每个命令显示的所有帮助页面。
echo /?for /?goto /?if /?pause /?set /?【讨论】:
你可以使用7zip命令行版本来做到这一点
7z a archive1.zip dir\ -v10k -v15k -v2m @listfile.txt
这将归档所有文件,并且文件夹位于名为“dir”的文件夹中 第一卷为 10kb,第二卷为 15kb,除最后一卷外,其他每卷为 2mb 并且您可以使用包含所有已命名文件列表的文件。
【讨论】: