【问题标题】:How to compress each subfolder in a folder into separate RAR archives with rar.exe using a batch script?如何使用批处理脚本使用 rar.exe 将文件夹中的每个子文件夹压缩到单独的 RAR 档案中?
【发布时间】:2020-04-01 08:44:36
【问题描述】:

我在N:\working 中有多个文件夹。

  • N:\working\1
  • N:\working\2
  • N:\working\3

我想在 64 位 Windows 上单独对它们进行 RAR 压缩。

这是我目前的代码:

@ECHO OFF
CD N:\working

SET rar_executable=C:\Rar.exe
ECHO  Using WinRAR executable: %rar_executable%

ECHO.
%rar_executable% a -r -ep1 -m0 "Test.rar"

pause

它生成包含所有三个文件夹的文件Test.rar。但是我想把这三个文件夹归档到归档文件1.rar2.rar3.rar中。

【问题讨论】:

    标签: batch-file winrar


    【解决方案1】:

    该任务可以通过只包含一个命令行的批处理文件来完成。

    @for /D %%I in ("N:\working\*") do @"%ProgramFiles%\WinRAR\Rar.exe" a -cfg- -ep1 -inul -m5 -r -- "%%I.rar" "%%I\"
    

    在命令提示符窗口中使用相同的命令行而不使用批处理文件:

    for /D %I in ("N:\working\*") do "%ProgramFiles%\WinRAR\Rar.exe" a -cfg- -ep1 -inul -m5 -r -- "%I.rar" "%I\"
    

    for 没有剩下的 @,因为在命令提示符窗口中运行此命令行完全没有用。 @ left to Rar.exe with full qualified file name 被删除,以便在新的存档文件创建开始时查看cmd.exe 的命令行输出。

    FOR 在指定目录N:\working 中搜索非隐藏子目录,并在为此子目录执行Rar.exe 之前将完整的限定目录名称分配给循环变量I

    Rar.exe 以递归方式 (a) 将 FOR 找到的子目录中的所有目录和文件添加 (a) 到具有当前子目录名称和文件扩展名 @ 的 RAR 存档文件987654335@ 在指定目录 N:\working 中创建,使用最佳压缩 (-m5) 没有任何输出到控制台窗口并忽略文件夹压缩期间可能发生的所有错误 (-inul)。压缩时忽略标准配置 (-cfg-)。压缩子目录的名称及其路径不会添加到 RAR 存档文件中(-ep1 和要压缩的文件夹以反斜杠结尾)。

    打开command prompt 窗口,运行for /? 并阅读输出帮助解释选项/D(目录搜索)。

    WinRAR的程序文件夹中双击打开文本文件Rar.rxt,这是Rar.exe的手册,解释了命令a和这里使用的开关。

    此任务也可以通过WinRAR.exe 使用之前创建的配置文件来完成,该配置文件以WinRAR.exe 开头,配置文件名称作为命令行上存储在快捷方式文件中的唯一选项。此解决方案不会打开控制台窗口,因为 WinRAR.exe 是 Windows GUI 桌面应用程序。

    【讨论】:

      猜你喜欢
      • 2014-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      • 1970-01-01
      • 2017-12-21
      • 2018-12-09
      • 2013-12-16
      相关资源
      最近更新 更多