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

时间:2014-06-24 23:25:33

标签: batch-file winrar

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

我做错了什么?

你能提供解释吗(也许告诉我递归是什么因为我不熟悉它)?

由于

1 个答案:

答案 0 :(得分:38)

使用

"%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和{{1}支持的WinRAR.exe而不是-ibck在后​​台运行 WinRAR ,这意味着最小化到系统托盘而不是在具有可见进度窗口的前景中。

有关创建-idq命令行启动 WinRAR 的帮助,请在第一个菜单项帮助主题上单击最后一个主菜单帮助 ,选择帮助选项卡目录,展开列表项命令行模式并使用帮助页面:

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

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