(1) 使用 WinRAR:
WinRAR
包括两个命令行工具,rar.exe and unrar.exe
,其中 rar.exe 压缩和 unrar.exe 解压缩文件。
两者都位于C:\Program Files\WinRAR
可安装版本的文件夹中。
假设,如果有多个子文件夹,C:\MyPictures
并且您希望每个子文件夹在父文件夹中获取自己的 .rar 文件。
从批处理文件中,这对您有用:
@echo off
setlocal
set zip="C:\Program Files\WinRAR\rar.exe" a -r -u -df
dir C:\MyPictures /ad /s /b > C:\MyPictures\folders.txt
for /f %%f in (C:\MyPictures\folders.txt) do if not exist C:\MyPictures\%%~nf.rar %zip% C:\MyPictures \%%~nf.rar %%f
endlocal
exit
解释....
它将在同一父文件夹中的父文件夹 C:\MyPictures 下创建所有文件夹/子文件夹的 .rar 文件。
然后,它将删除父文件夹 C:\MyPictures 下的所有原始文件夹/子文件夹,因此您只会在同一位置留下档案。
如果要保留原始子文件夹,只需删除-df switch
.
(2) 使用 7-Zip:
7-Zip
是具有高压缩比的文件归档器。7z.exe
是 7-Zip 的命令行版本。7-Zip 不使用系统通配符解析器,也不遵循. 表示任何文件。7-Zip 款待。匹配任何具有扩展名的文件的名称。要处理所有文件,您必须使用 * 通配符。
在批处理文件中使用 7zip 命令行选项,以下适用于您:
@echo off
setlocal
for /d %%x in (C:\MyPictures\*.*) do "C:\Program Files\7-Zip\7z.exe" a -tzip "%%x.zip" "%%x\"
endlocal
exit
在哪里