仅将mainFolder中的第一个subFolder压缩到新文件夹

时间:2015-03-23 02:29:58

标签: batch-file compression directory rar

使用 WinRAR 命令行(C:\Program Files\WinRAR\Rar.exe),我尝试做的是将主文件夹(C:\Users\%username%\desktop\mainFolder)中的单个文件夹压缩为新文件夹(C:\Users\%username%\desktop\newFolder)并在主文件夹中删除压缩后的单个文件夹。

这样 ONLY 每次启动.bat时都会压缩第一个子文件夹

  • C:\用户\ %的用户名% \ mainFolder
    • singleFolder1
    • singleFolder2
    • singleFolder3

到目前为止,它仅适用于主文件夹中的所有文件夹

c:
cd \Users\%username%\Desktop\newFolder
"C:\Program Files\WinRAR\Rar.exe" a -ep1 -mt5 -m1 -v50M -r "!_RndAlphaNum!" C:\Users\%username%\Desktop\mainFolder\

!_RndAlphaNum!是因为我在批量启动时使用代码为.rar档案生成随机名称。

1 个答案:

答案 0 :(得分:0)

这类似于Using a loop to rar multiple subfolders in a main folder,因此可以使用

轻松实现
@echo off
for /D %%F in ("%USERPROFILE%\mainFolder\*") do (
    "%ProgramFiles%\WinRAR\Rar.exe" m -ep1 -mt5 -m1 -v50M -r "%USERPROFILE%\desktop\newFolder\%_RndAlphaNum%" "%%~F"
    goto Done
)
:Done

在处理第一个目录后,命令goto Done导致断开FOR循环,并继续批处理作业Done下方。

再次使用命令 m 代替 a 进行存档,然后删除打包到直接在目标文件夹中创建的存档文件中的所有文件和文件夹。