![使用 7z 将每个子目录备份为单独的文件](https://linux22.com/image/1418380/%E4%BD%BF%E7%94%A8%207z%20%E5%B0%86%E6%AF%8F%E4%B8%AA%E5%AD%90%E7%9B%AE%E5%BD%95%E5%A4%87%E4%BB%BD%E4%B8%BA%E5%8D%95%E7%8B%AC%E7%9A%84%E6%96%87%E4%BB%B6.png)
我的文件结构是:
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
更多选择