batch-file - 只需使用 WinRAR 命令行批量压缩 1 个文件夹?

标签 batch-file winrar

使用 WinRAR 命令行(C:\Program Files\WinRAR\rar.exe),我要做的就是压缩单个文件夹(C:\Users\%username%\desktop\someFolder) 并可能更改创建的 .zip 文件的名称。我尝试过“rar.exe a”C:\Users\%username%\desktop\someFile”,它可以工作,但它会压缩另一个文件夹(不是我放置的文件夹)。

我做错了什么?

您还可以提供解释吗(也许可以告诉我什么是递归,因为我不熟悉它)?

谢谢

最佳答案

使用其中之一

"%ProgramFiles%\WinRAR\Rar.exe" a -ep1 -idq -r -y "Name of RAR file with path" "%UserProfile%\Desktop\someFolder"

"%ProgramFiles%\WinRAR\Rar.exe" a -ep1 -idq -r -y "Name of RAR file with path" "%UserProfile%\Desktop\someFolder\"

在命令a之后创建具有指定名称的RAR存档文件(添加到存档)和开关

  • -idq ...启用安静模式仅显示错误消息,
  • -ep1 ...从指定的文件/文件夹名称中排除基本目录,
  • -r ...递归归档/压缩所有文件和子目录,
  • -y ...对所有查询均假设

文件夹someFolder 包含在存档中,第一个命令行末尾没有反斜杠

文件夹someFolder 不包含在存档中,仅包含该文件夹的文件和子目录,第二个命令行末尾带有反斜杠

换句话说,选项 -ep1导致在将文件或文件夹添加到存档时省略指定文件或文件夹名称中从路径到最后一个反斜杠的所有内容,这解释了在命令行上指定末尾不带或不带反斜杠的情况下添加文件夹的差异。

Recursion表示不仅添加指定文件夹中的文件,还添加所有子文件夹以及所有子文件夹中的所有文件。

因此 RAR 必须首先在指定文件夹中搜索子文件夹。如果找到,请进入该子文件夹并再次搜索子文件夹。如果找到,请进入该子文件夹并搜索子文件夹。如果没有找到,请将此子文件夹中的文件添加到存档中,或者如果子文件夹为空,则仅添加文件夹名称。然后返回父文件夹并继续搜索下一个子文件夹。如果没有找到,请添加该子文件夹的文件。然后返回父文件夹并继续搜索子文件夹,依此类推。

正如您所读到的,对整个文件夹树的每个分支一次又一次地执行相同的过程,直到处理完所有子文件夹。这是使用递归完成的。每次找到子文件夹时,搜索子文件夹的子例程都会调用自身。

注意:

控制台版本Rar.exe仅支持创建/提取 RAR 存档。它不支持 ZIP 存档。这清楚地写在文本文件 Rar.txt 中顶部是 WinRAR 控制台版本的手册。有必要使用 WinRAR.exe而不是RAR.exe创建 ZIP 文件。

示例1:

"%ProgramFiles%\WinRAR\WinRAR.exe" a -afzip -ep1 -ibck -r -y "Name of ZIP file with path" "%UserProfile%\Desktop\someFolder"

示例2:

"%ProgramFiles%\WinRAR\WinRAR.exe" a -afzip -ep1 -ibck -r -y "Name of ZIP file with path" "%UserProfile%\Desktop\someFolder\"

GUI版本WinRAR.exe有许多与控制台版本相同的命令和开关Rar.exe ,但存在差异,如下所示 -afzip仅由 WinRAR.exe 支持和-ibck而不是-idq在后台运行WinRAR,这意味着最小化到系统托盘,而不是在带有可见进度窗口的前台运行。

有关创建 WinRAR.exe 的帮助命令行启动WinRAR,单击最后一个主菜单中第一个菜单项帮助主题上的帮助,选择帮助选项卡内容 ,展开列表项命令行模式并使用帮助页面:

  • 命令行语法
  • 按字母顺序排列的命令列表
  • 字母切换列表

建议分别按列出的顺序阅读帮助页面和文本文件 Rar.txt从上到下创建 WinRAR.exeRar.exe用于在批处理文件或快捷方式文件 (*.lnk) 中使用的命令行。

关于batch-file - 只需使用 WinRAR 命令行批量压缩 1 个文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24397921/

相关文章:

batch-file - 如何在批处理文件中提取 $ 后的文本?

mysql - 如何创建执行多个sql文件的批处理文件

batch-file - 批处理脚本可压缩所有没有父文件夹的文件

batch-file - 如何使用 WinRAR 将每个文件夹分别归档到一个目录中?

batch-file - 如何通过命令行使用特定配置文件创建 WinRAR、RAR 文件

Powershell取消阻止文件夹中的所有文件

batch-file - 从剪贴板访问复制的文本并将其存储在批处理文件中

windows - 如何在 bat 文件中按位制作?

c - 通过C代码提取一个rar文件