我有一个包含3个子文件夹的主文件夹...
我希望批处理脚本抓取第一个子目录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\*.*"
答案 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"
)
结果是
根据文件夹的所有文件的大小以及归档每个文件夹需要多少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"
)
我不认为在这里将每个文件夹复制到临时文件夹只是为了存档。