使用循环来rar主文件夹中的多个子文件夹

时间:2015-03-20 22:28:41

标签: loops batch-file rar

我有一个包含3个子文件夹的主文件夹...

  • C:\用户\管理员\文件夹
    • Folder1中
    • FOLDER2
    • Folder3

我希望批处理脚本抓取第一个子目录Folder1,将其复制到另一个位置,例如C:\Temp\Folder,然后 WinRAR 开始归档Folder1 。将Folder1复制到另一个位置后,可以将其删除到主文件夹中。

WinRAR 完成归档Folder1也可以在C:\Temp\Folder中删除。所以只剩下.rar文件。

然后脚本从Folder2开始,与Folder1一样。

到目前为止,我只有这个,并不知道如何实现上述目标。

"C:\Program Files\WinRAR\Rar.exe" a -ep1 -mt5 -v50M -r -df "NAME-OF-THE-RAR-FILE" "C:\Users\Admin\Folder\*.*"

1 个答案:

答案 0 :(得分:0)

打开命令提示符窗口,键入并执行for /?并读取此命令的帮助输出。第一个帮助页面上已经解释了选项/D,该页面用于在目录的每个子目录上执行命令。

下面的批处理文件使用 WinRAR 的控制台版本,使用 m 命令(移动=存档并成功删除)而不是命令来存档C:\Users\Admin\Folder中的每个子文件夹 a ,带有开关 -df

@echo off
for /D %%F in ("C:\Users\Admin\Folder\*") do (
    "%ProgramFiles%\WinRAR\Rar.exe" m -cfg- -ep1 -inul -m5 -mt5 -r -tl -v50M -y "%%~F.rar" "%%~F\"
    rd "%%~F"
)

结果是

  • C:\用户\管理员\文件夹
    Folder1.rar
    Folder2.rar
    Folder3.rar

根据文件夹的所有文件的大小以及归档每个文件夹需要多少50 MB的卷,文件夹在归档和删除文件夹后可以包含更多文件。

文件夹名Folder1未包含在文件Folder1.rar中,因为在第三行末尾的最后一个参数"%%~F\"中有反斜杠。

如果档案文件名Folder1也应包含在档案文件Folder1.rar

中,批处理文件会更容易
@echo off
for /D %%F in ("C:\Users\Admin\Folder\*") do (
    "%ProgramFiles%\WinRAR\Rar.exe" m -cfg- -ep1 -inul -m5 -mt5 -r -tl -v50M -y "%%~F.rar" "%%~F"
)

我不认为在这里将每个文件夹复制到临时文件夹只是为了存档。