【问题标题】:How to add Multiple Files & Folders to a single 7zip archive using batch如何使用批处理将多个文件和文件夹添加到单个 7zip 存档
【发布时间】:2019-11-19 11:01:00
【问题描述】:

这就是我想要做的,

我想创建一个批处理文件来将多个文件夹和文件压缩成一个 7zip 文件以供存档。

我有外部驱动器,我们可以调用 [SOURCE DISK] 和 [DESTINATION DISK]。

我要压缩的文件和文件夹位于 [SOURCE DISK] 的根目录中。我想将所有这些文件夹和文件添加到具有指定名称 [ARCHIVE NAME] 的单个 7zip 存档中。

我安装了 7zip 64 位。

这是我尝试过的;

C:\Program Files\7-Zip\7za a -tzip "[DESTINATION DISK]\[ARCHIVE NAME] %DATE:~12,2%%DATE:~4,2%%DATE:~7,2%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%.zip" "[SOURCE DISK]\[FIRST FOLDER], [SOURCE DISK]\[SECOND FOLDER], [SOURCE DISK]\[THIRD FOLDER], [SOURCE DISK]\[AN EXCEL DOCUMENT]" -mx5

C:\Program Files\7-Zip\7za a -tzip "[DESTINATION DISK]\[ARCHIVE NAME].zip" "[SOURCE DISK]\[FIRST FOLDER], [SOURCE DISK]\[SECOND FOLDER], [SOURCE DISK]\[THIRD FOLDER], [SOURCE DISK]\[AN EXCEL DOCUMENT]" -mx5

C:\Program Files\7-Zip\7za a -tzip "[DESTINATION DISK]\[ARCHIVE NAME].zip" "[SOURCE DISK]\[FIRST FOLDER]" -mx5

c:\Program Files\7-Zip\7z.exe a -tzip "[DESTINATION DISK]\[ARCHIVE NAME].zip" "[SOURCE DISK]\[FIRST FOLDER]" -mx5

c:\Program Files\7-Zip\7z.exe a -tzip "[DESTINATION DISK]\[ARCHIVE NAME].7z" "[SOURCE DISK]\[FIRST FOLDER]" -mx5

我是 7zip 命令行的新手。我确定我错过了一些重要的东西。当我手动执行批处理文件时,cmd 提示符闪烁,但它没有任何反应,因为我的 CPU 使用率并没有像使用 7zip GUI 那样稳定变化。我认为 cmd 提示符闪烁是因为它已启动但出现语法错误。

过去我用过

for /d %%X in (*) do "c:\Program Files\7-Zip\7z.exe" a "%%X.7z" "%%X\"

压缩当前目录中的每个文件夹,它可以很好地工作。

如何使用批处理指定要包含在一个存档中的文件夹和文件。

任何提示将不胜感激。

【问题讨论】:

    标签: batch-file compression 7zip


    【解决方案1】:
    "C:\Program Files\7-Zip\7z.exe" a -pSECRET "[DESTINATION DISK]\[ARCHIVE NAME] %DATE:~10,4%%DATE:~4,2%%DATE:~7,2%_%TIME:~0,2%%TIME:~3,2%%TIME:~6,2%.7z" "[SOURCE DISK][FIRST FOLDER]" [SOURCE DISK][SECONDFOLDER] "[SOURCE DISK]\[EXCEL DOCUMENT]" -mhe=on -mx5
    

    我想通了。感谢您的支持!经过一堆阅读和反复试验,我意识到源或目标的路径是否包含空格:引号是必需的。如果没有空格:不要包含引号。请参见上面的示例。希望这对将来的其他人有所帮助。

    不要混淆,但我已经添加了密码,并在输入密码之前隐藏了文件名。我确实意识到密码将在 .bat 中,但这些档案将被转移到其他机器上,并且 .bat 将来将无法提供给其他机器。

    【讨论】:

    • 我建议您始终在文件和目录名称以及任何传递的参数/参数字符串周围使用引号。
    【解决方案2】:

    C:\Program Files\7-Zip\7za 尝试执行 C:\Program。您需要引用它"C:\Program Files\7-Zip\7za",就像您在“我使用过”示例中所做的那样。

    可能有人应该提请您注意-r 开关以递归存档 - 我相信所有开关(如-mx5)都应该出现在存档文件名之前,否则它将假定-mx5 是要归档的文件名。

    【讨论】:

    • 感谢您的回复。我已将“行”更改为 "C:\Program Files\7-Zip\7z.exe" a -pSECRET "[DESTINATION DISK][ARCHIVE NAME].7z" "[SOURCE DISK][FIRST FOLDER]" -mhe=on -mx5 有效,似乎 -mx5.感谢您的输入。我很好奇使用什么开关或语法从同一目录中选择多个文件夹/文件。我不确定我的术语是否正确。目前(在创建此批次之前),用户必须在按住 ctr 的同时选择多个文件/文件夹,然后使用 7zip 上下文菜单添加到存档并手动配置其他所有内容。
    【解决方案3】:

    您只需要指定正确的选项并确保所有路径都被引用

    @(
      SetLocal
      Echo Off
      SET "_Src="C:\Source\Path"
    )
    
    REM Get The Date Tokens and Time in ISO Format:
    
    FOR /F "Tokens=1-7 delims=MTWFSmtwfsouehrandit:-\/. " %%A IN (
      "%DATE% %TIME: =0%"
    ) DO (
      FOR /F "Tokens=2-4 Skip=1 Delims=(-)" %%a IN ('
        ECHO.^| DATE
      ') DO (
        SET "%%~a=%%~A"
        SET "%%~b=%%~B"
        SET "%%~c=%%~C"
        SET "IsoTime=%%~D.%%~E.%%~F.%%~G"
      )
    )
    
    REM Set Archive Filename with Date:
    SET "_Dst="D:\Destination\Path\ARCHIVE_NAME_%yy%-%mm%-%dd%_%IsoTime%.zip"
    
    REM Run 7Zip Command:
    "C:\Program Files\7-Zip\7z.exe" a -bd -tZip "%_Dst%" "%_Src%"
    
    (
      EndLocal
      Exit /B
    )
    

    我想出了一种方法将日期转换为独立于区域的 ISO 格式。同样,因为您的系统上有不同的日期/时间格式,所以我有。你可以随意改变它。

    【讨论】:

    • 我想我开始明白你在这里做了什么。我要么错过它,要么它被遗漏了。如何将特定文件和文件夹添加到 1 个存档。为简单起见,我已经将我的批次减少到这个并且它有效。 "C:\Program Files\7-Zip\7z.exe" a -pSECRET "[DESTINATION DISK][ARCHIVE NAME].7z" "[SOURCE DISK][FIRST FOLDER]" -mhe=on -mx5 我在找对于类似 "C:\Program Files\7-Zip\7z.exe" a -pSECRET "[DESTINATION DISK][ARCHIVE NAME].7z" "[SOURCE DISK][FIRST FOLDER]" "[SOURCE DISK][SECOND FOLDER]"-mhe=on -mx5 在哪里以及如何将多个源路径添加到存档。
    【解决方案4】:

    您可以使用包含源路径列表的文本文件,如 here 所述。

    使用路径创建list.txt

    My programs\*.cpp
    Src\*.cpp
    

    然后在归档命令中使用这个文件:

    7z a archive.7z @list.txt
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-23
      • 2020-06-23
      相关资源
      最近更新 更多