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

Compress only first subFolder in mainFolder to a new folder

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

所以每次我启动 .bat

时,只有 第一个子文件夹被压缩

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

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 档案生成随机名称。

这与 类似,因此可以通过

轻松实现
@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进行压缩,然后删除打包到直接创建的压缩文件中的所有文件和文件夹目标文件夹。