使用 7z 将每个子目录备份为单独的文件

使用 7z 将每个子目录备份为单独的文件

我的文件结构是:

c:\csdata\folder1
c:\csdata\folder2
c:\csdata\folder3
etc

我正在尝试使用 7z 将所有文件夹备份到csdata它们自己的存档中并保存到临时文件夹 (C:\butemp)。

这是我目前所拥有的:

For /D %%i in (C:\csdata\*.*) DO 7za a "%%i.7z" "%%i"

上述操作有效,但它会在csdata文件夹中创建 7z 文件,因为%%i它等于完整路径。

答案1

for使您能够从循环变量(取自help for)中提取(并组合)各个部分:

%~nI - 仅将 %I 扩展为文件名
%~xI - 仅将 %I 扩展为文件扩展名
(截断)

The modifiers can be combined to get compound results:

%~dpI       - expands %I to a drive letter and path only
%~nxI       - expands %I to a file name and extension only
(truncated)

所以你可以使用7za a "C:\butemp\%%~nxi.7z" "%%i"

争取help for更多选择

相关内容